您现在的位置: 主页 > 嵌入式处理器 > ARM > STM32 > stm32提高 > stm32 led显示程序
本文所属标签:
为本文创立个标签吧:

stm32 led显示程序

来源:网络整理 网络用户发布,如有版权联系网管删除 2017-11-30 

定时控制LED闪烁。

  1. #include "stm32f0xx.h"
  2.  
  3. int main(void)
  4. {
  5.  
  6.     RCC->AHBENR |= RCC_AHBENR_GPIOAEN;  // enable GPIO port A & B clock
  7.     GPIOA->MODER = GPIO_MODER_MODER8_0; // PA8 as general output (LED)
  8.  
  9.     RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;     // enable basic timer 6
  10.     TIM6->PSC = 9999;       // prescaler
  11.     TIM6->ARR = 399;        // auto reload value
  12.     TIM6->CR1 = TIM_CR1_URS|TIM_CR1_CEN;    // start counter
  13.  
  14.     while(1)
  15.     {
  16.         static char a=0;
  17.         if(TIM6->SR & TIM_SR_UIF)   // check if overflow
  18.         {
  19.             TIM6->SR &= ~TIM_SR_UIF;    // clear flag
  20.             if(a==0)
  21.             {
  22.                 GPIOA->BSRR = (1<<8);
  23.                 a=1;
  24.             }
  25.             else
  26.             {
  27.                 GPIOA->BRR = (1<<8);
  28.                 a=0;
  29.             }
  30.         }
  31.     }
  32. }
  33.  
复制代码

上面这个程序所做的事情,先是初始化GPIO, 设置PA8为输出口(板子上连了一个LED),然后是设置定时器Timer 6, 这是一个自动重装的计数器,我把它调到0.5秒中溢出一次。在下面的循环里面,就是检测溢出标志,然后切换LED的亮和灭状态。学过C语言的,都应该看得懂;至于RCC, GPIOA, TIM6 这几个结构指针的定义,都在#include的头文件里面,这是和硬件相关的,具体请查阅"RM0091 STM32F0x1/STM32F0x2/STM32F0x8 Reference Manual"编程手册。

如何编译上面这个 C 程序,且听下回分解。这里暂且假定编译成功了,得到一个 HEX 文件,也就是要烧写的二进制代码。
如果你是使用KEIL, IAR等集成开发环境,那么用自带的烧写工具就可以进行写入了。如果是像我cruelfox这样追求精简,仅使用GCC命令行工具的,就需要再找下载程序用的软件了。

              查看评论 回复



 

"stm32 led显示程序"的相关文章

网站地图

围观()