如何通过串口烧写STM32程序

如何通过串口烧写STM32程序,第1张

1、准备USB传串口连接线(能力用PL2303芯片自做); 2、准备程序编程软件编译1缀HEX文件找文件; 3、更改STM32BOOT发板配短接帽按照STM32用户手册进行短接; 4、连接串口传输线默认用STM32串口1发板引接线脚(没查用户手册自接)打串口调试助手注意com口波特率电脑接口致找第二步hex文件直接载即; 5、载完记改BOOT否则程序运行

移植用到的文件:IICh IICc PCF8563h PCF8563c ,我把它们全都复制到了这个Word文档里。

使用要初始化的函数:void PCF8563_Init(void) 就唯一这个。

全局变量: u8 PCF8563_Time[7]; 程序初始的值是给PCF8563设置的时间,程序中读取返回的值是PCF8563当时的时间。

我这里使用的IIC的 SCL,SDA的引脚分别为PA0 PA1, 具体看IICh 和 IICC。 只要修改好两个引脚的初始化配套你手上的板子这,就能成功移植~

1、库函数不同。由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。

2、运行速度不同。普通的51单片机运行速度较慢,特别是双数据指针,而STM32系列单片机最高工作频率可达72MHz。

3、便利程度不同。51单片机的任何器件只需要配置寄存器打开就可以进行编程,而STM32系列单片机则需要先打开对应的时钟,包括开启后打开外部时钟(晶振)才开始工作。

4、资源不同。STM32的内部资源(寄存器和外设功能)较普通的51单片机都要多,基本上接近于计算机的CPU了,所以在程序编写上能有更多的选择。

5、编程语言选择不同。STM32基本不会选择汇编语言了,因为工程量巨大,寄存器太多了,位数也多,而51单片机则多使用汇编语言。至于C语言编程方面的区别就不大了。

参考资料来源:百度百科-stm32

参考资料来源:百度百科-51单片机

有问题的那个程序

u8 ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10);

只在上面那条指令采集了一次按键数据。

等到执行到 while(!ReadValue);//等待按键被放开 这条指令时

数据仍然是上次采集到的那个值代表按键按下,(!ReadValue)这个值永远成立,所以无法代表按键断开。所以程序一直卡死在这条指令上。如果要通过就必须在判据里重新读取按键状态,像正确的程序那样用这样的指令

while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10));//等待按键被放开

另外因为你只读取了一次按键状态,所以下面那么多一堆软件消除抖动的程序白写了。

综上,正确的程序在每个判断的时刻都要重新读取下按键状态。

以上就是关于如何通过串口烧写STM32程序全部的内容,包括:如何通过串口烧写STM32程序、基于STM32的PCF8563的程序怎么写、stm32跟普通的51单片机在程序编写方面有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9317185.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存