2926|0

1万

帖子

25

TA的资源

裸片初长成(高级)

楼主
 

【晒心得】---- STM32F0DISCOVERY点亮LED [复制链接]

STM32F0DISCOVERY点亮LED
点个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);
       }
}
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表