stm32单片机教程stm32按单数红灯亮按双数红灯灭

通过查看原理图我们的LED指示灯配置在PB8、PB9管脚上,通过配置GPIOB时钟及引脚来控制指示灯的亮灭

理解stm32端口配置

学会操作使用iar编程工具

STM32上电时外设时钟默认不开启,用要时需偠先开启时钟本例开启GPIOA和GPIOB的时钟。 

 stm32F1提供了4种输出模式(推挽输出、开漏输出 、复用推挽输出 、复用开漏输出)和3种输出速度;一般配置LED采用推挽输出;

参考原理图可以看出点亮LED灯需要IO口输出低电平;

 用iar编程工具找开led目录下的工程,可以参考《Iar工程编译和下载的使用教程.docx》文档;

2、led目錄结构说明

该文件作为启动时执行的第一步这个文件中有一段启动代码。

3、NVIC.c(中断配置程序)

 配置使能系统中断程序文件本例中主要配置使能USART1串口接收中断;

调用该函数主要设置中断允许及中断优先级;

4、RCC.c(配置系统时钟程序)

 配置使能系统时钟程序文件,本例中主要配置系统时钟频率设为72MHz;主要调用system_stm32f10x.c内部的SystemInit的函数进行系统时钟的初始化;

调用该函数主要设置中断允许及中断优先级;

5、bsp.c(板载驱动程序)

 初始化所有的硬件设备;

调用该函数主要配置时钟,初始化所有的硬件设备该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。只需要调鼡一次;

  初始化全局变量配置时钟,初始化所有的硬件设备定时每秒切换运行led指示灯。

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编輯认为其作品不宜公开自由传播或不应无偿使用,请及时通过电子邮件或电话通知我们以迅速采取适当措施,避免给双方造成不必要嘚经济损失

最近干刚做了一个stm8的项目用的是L低功耗系列,其中遇到一个问题外设寄存器的值怎么都写入不进去。用IAR仿真产看寄存器的徝不论写进去多少,都是初始值后来把所有寄存器都写了一遍,发现有的能写进去有的写不进去。比如GPIO的寄存器就能写进去百思鈈得姐,偶然查看clock的库函数发现个函数是设置外设时钟的这个系列,亦或者整个低功耗系列的每个外设是不是都需要在时钟寄存器中单獨设置时钟(以前所使用的芯片都是在外设寄存器中使能或者是禁使能)

现在在做一个项目需要用到STM8L和BC26。长时间断链后连接下服务器並且发送一下当前状态,需要用到STM8L和BC26的低功耗STM8L低功耗,这里用HALT模式RTC规定时间唤醒。第一步需要关闭所有外设把所有管脚为设置为输絀,并且输出低管脚根据具体环境设置,需要输出高电平的则输出高电平在关闭外设的是后是需要先_DeInit,然后在关闭外设始终有点需偠特别主要,要把在进入halt模式的时候需要把所有的中断的标志位清空否则使用RTC唤醒则会不起作用。第二步就设置低功耗的一些配置第彡步配置完成后进入低功耗。项目中需要用到外部高速始终和BC26通信所以在进入和退出halt模式的时候需要重新初始化active模式下的

最近帮医院做叻一款体温记录仪,整个硬件方案资源是:stm8L151 + NTC*2 + EEPROM + 锂电池充电保护电路 + 18mAh纽扣电池;软件逻辑是每隔一分钟,采样两路温度并保存在EEP里;通过USB转TTL上位机能够读取,展示温度曲线最大最小平均值等简单的运算;整个方案很简单,但也走了不少弯路......stm32单片机教程程序框架之伪代码:void

使用的最小系统晶振是8m的这里说下配置过程:时钟自动切换,开启切换中断在中断里面清除中断标志使能CSS并开启CSS中断CSS中断发生,清除CSSΦ断标志将HSI二分频,即16M/2=8M与外部晶振相同,这样不会影响串口波特率窗口输出配置信息:用手触碰PA1、PA2引脚使外部晶振失效串口输出CSS中断

畅学电子网带你进入电子开发學习世界

专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

我要回帖

更多关于 stm32单片机教程 的文章

 

随机推荐