『壹』 stm32通过串口烧写程序的原理是什么
用UART1串口,然后看芯片简介把boot0和boot1配置好,下载个官方的ISP下载软件,就ok了。
首先下内载一个软件 Flash Loader Demo
然后容就是把boot0置1 ,boot1置0.
这样就是串口下载模式。
选择好波特率和端口。貌似默认的就行。建议改成com1.其实com0也是没关系的。
最关键的是 stm32单片机的USART只能用usart1。其他几个USART是都不行的。切记。设计电路的时候就要注意这一点。
然后可以打开,简单的按下一步。后面选择domn to device.使用默认设置。然后把hex文件放进去就OK。
其实很简单的。
最后一步,还是要还原BOOT设置。 boot0置0,boot1置0.一定要还原设置。不然程序是不会运行的。
『贰』 STM32串口程序
在接收中不抄允许有等待的语句,袭如上程序中的delayms1();是绝对不能出现的,否则在连续接时会出现这样的情况:
1、有一个数据已经接收完成,if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)条件成立,执行条件内语句,跳转2。
2、执行 delayms1();语句过程中,又连续有好几个数据接收过来,但此时你第一个数据都没有读出来,立马造成接收过载错误。
所以,你接收单个数据是没有问题,但连续接收多个的时候,你这样做必然是不行的。