这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » manhuami2007 ARM DIY 进程帖

共9条 1/1 1 跳转至

manhuami2007 ARM DIY 进程帖

菜鸟
2012-03-06 19:30:19     打赏

呵呵 先等待公布名单了
3.28 
今天收到DIY的pcb板子了,绿油油的,呵呵,开始买件了




关键词: manhuami2007     进程    

专家
2012-03-06 22:29:29     打赏
2楼
耐心等吧!!

菜鸟
2012-04-10 08:32:21     打赏
3楼
呵呵,接下来开始学习各种外设,主要是想学习一下GUI,加油

菜鸟
2012-04-25 18:18:20     打赏
4楼

明天想把DS18B20的数据发送出来,明天再加油吧
还有一个问题,我看大部分人更新都是在“回复本帖”中更新,而我是在“编辑”中更新,到底哪个是正确的啊?


高工
2012-04-25 19:48:18     打赏
5楼
都一样,在回复中更新,然后整理链接到一楼最好了,这样方便大家查看

菜鸟
2012-04-26 21:23:17     打赏
6楼
4.8~4.9
昨天我的零件包到了,花了我快二百大洋啊,呵呵。经过昨天与今天的努力终于完成了焊接,好辛苦啊,放上图片,我的焊工太差了,大家不要笑话啊。


这是元件包



        这是今天焊完成的,手机不好,照的太差了,不过我焊的也难看,呵呵。
        在焊接stm32f103的时候,想用一次传说中的脱焊,可能是我还没领略到其中的精髓,焊失败了,直接干掉一个片子。好了先去吃饭,吃完上传我的跑马灯程序,呵呵。

下面是我的跑马灯程序



菜鸟
2012-04-26 21:24:08     打赏
7楼
4.25 串口的使用
   最近有点小忙,所以好久没更新了,今天学了学用printf发送数据,而且还编了个,我发什么,超级终端上显示什么的小程序。
   使用printf函数必须在options for target ---- target----code generation 中 勾选use microLIB。而且在源程序中加入如下代码
#include <stdio.h>
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
  USART_SendData(USART1, (uint8_t) ch);

  /* Loop until the end of transmission */
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  {}

  return ch;
}

我还编写了一个自发自显的程序下面是效果图

下面是源代码,各位可以参考下
manhuami2007 串口.zip


菜鸟
2012-04-26 21:26:55     打赏
8楼

4.26    今天光研究systick了,因为驱动DS18B20需要一定时间的延时,所以想采用systick,一共有3中方法实现延时第一种也就是最简单的使用for循环,但是不精确,实现us级的延时怕不好使,还有两种方法就都是使用systick了,一种需要进中断,一种不需要进中断,进中断会浪费系统时钟,所以我选择的是不进中断的,现在把下面两种方法都说一下
     stm32的systick的程序设置,当使用systick_config()函数之后,其计数寄存器的载入值就是你输入的参数,并且自动打开中断,并将中断设为最低的优先级,将其时钟设为HCLK即系统时钟72mhz,并重置计数寄存器开始计数。也可以将时钟设置为HCKL的八分频,通过使用SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8) 紧跟在systick_config()之后,而改变优先级则使用NVIC_SetPriority(SysTick_IRQn,...) 函数,而时基单元的设置使用如下公式,Reload Value = SysTick Counter Clock (Hz) x  Desired Time base (s)  Reload Value 就是传递进去的参数。但参数不能超过0xFFFFFF,也就是说通过systick_config()这一个函数就实现了systick的各种设置,也会自动打开中断,下面是源代码
延时函数
void delay_systick_it(uint16_t time)
{
 timedly=time;
 while(timedly!=0);
}
中断函数
void SysTick_Handler(void)
{
 if(timedly!=0)
 {
  timedly--;
 }
}
而要想不进中断实现延时就要通过写寄存器来实现了,下面是相关寄存器的图片

systick的时钟,systick的时钟包括内部时钟和外部时钟,对于stm32 其内部时钟FCLK就是AHB的时钟,72MHz,外部时钟就是8分频后的时钟,9MHz。因此使用systick_config()函数时其默认时钟为72MHz。不进中断的延时的相关代码如下
void delay_systick_ask(uint16_t time)
{
 uint32_t temp;
 SysTick->LOAD=9000*time;
 SysTick->VAL=0x00;
 SysTick->CTRL=0x01;
 /*第0位 使能Systick  第1位 0无动作 1中断请求 
 第二位 0内部时钟72MHz 1外部时钟9MHz  第16位指出是否计数到0*/
 do
 {
 temp=SysTick->CTRL ;
 }while((temp&0x01)&&(!(temp&(1<<16))));
 SysTick->CTRL=0x00;
 SysTick->VAL=0x00;
}


菜鸟
2012-04-26 21:30:52     打赏
9楼

这个链接怎么整理到一楼啊 ??


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]