你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

初学STM32F0探索套件之《STM32F0DISCOVERY点亮LED》

[复制链接]
chen8710 发布时间:2013-12-14 22:11
 点个LED看似简单,实际上它是在了解ST的编程特点及寄存器控制基础上的。
一、启动

ST的公司的例程中,使用startup_stm32f030x8.s文件作为启动时执行的第一步。在这个文件里要执行的工作是:

n        初始化SP;

n        初始化PC指针 --- 指向iar_program_start

n        设置中断向量表各exception的地址

n        配置系统时钟

n        转向C语言的main函数

 

复位入口的指令为:

Reset_Handler

       LDR     R0, =SystemInit

       BLX     R0                              // 调用SystemInit()函数。这个函数在

                                                               //  system_stm32f0xx.c文件中。

       LDR     R0, =__iar_program_start

       BX      R0                              // 跳转主程序

 

可见,ST公司的方法,对系统时钟等的初始化,并不是在main()函数中执行的。

SystemInit()函数中,设置RCC的几个寄存器,初始化系统时钟。

…………

#ifdefined (PLL_SOURCE_HSI)
  /* At this stage the HSI is already enabled */
   …………
#else
#if defined (PLL_SOURCE_HSE)
  /* Enable HSE */    
  …………
#endif

 

二、延时函数

在早期的单片机应用中,一般使用循环来延时,而M0SYSTICK,使用它延时就可不占CPU时间。

1、配置Systick

使用SysTick_Config()函数完成。

2、在中断SysTick_Handler中实现计数

void SysTick_Handler(void)

{

  if(TimingDelay != 0x00)

  {

   TimingDelay--;

  }

}

三、IO控制

stm32f030IO功能主要有

l        输入悬空

l        输入上拉

l        输入下拉

l        模拟信号

l        输出开漏加上拉或下拉

l        输出推挽加上拉或下拉

l        其它功能推挽上拉或下拉

l        其它功能开漏上拉或下拉

IO的控制寄存器实现以上功能。有端口上(下)拉控制寄存器、置位寄存器、清0寄存器、切换寄存器等12个控制寄存器。对LED的控制,使用数据输出寄存器。

 

四、程序

int main(void)

{

       LEDInit(LED3);

       LEDInit(LED4);

 

       /*Turn on LED3 and LED4 */

       LEDOn(LED3);

       LEDOn(LED4);

 

       if(SysTick_Config(SystemCoreClock / 1000))

       {

              /*Capture error */

              while(1);

       }

      

       for(;;)

       {

   /* Toggle LED4 */

    LEDToggle(LED4);

 

   /* Insert 50 ms delay */

   Delay(50);

 

   /* Toggle LED3 */

   LEDToggle(LED3);

 

   /* Insert 100 ms delay */

   Delay(100);

       }

}
收藏 评论2 发布时间:2013-12-14 22:11

举报

2个回答
沐紫 回答时间:2013-12-16 15:02:34

RE:初学STM32F0探索套件之《STM32F0DISCOVERY点亮LED》

多谢楼主~
 
 
已添加到社区网友原创汇总:
STM32F030探索套件开发日志,中文教程,使用问答70篇
zhenweiaaa 回答时间:2020-8-29 20:50:23
谢谢LZ

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版