历史上的今天
今天是:2025年07月27日(星期日)
2019年07月27日 | stm32串口首次发送数据丢失
2019-07-27 来源:eefocus
查阅stm32f10X参考手册 :
TC:发送完成
当包含有数据的一帧发送完成后,由硬件将该位置位。如果USART_CR1中的TCIE为1,则产生中断。由软件序列清除该位(先读USART_SR,然后写入USART_DR)。TC位 也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
而硬件复位后,串口发送的首个数据之前没有read SR的操作,是直接write DR,也就是说,TC没有被清除掉。
所以在发送数据指令之前加上USART_ClearFlag(USART2,USART_FLAG_TC);或者USART_GetFlagStatus(USART2, USART_FLAG_TC);指令,先读取一下USART_SR,就不会出现数据覆盖情况了。(也有其他操作办法)
总之,硬件复位后,串口发送首个数据之前,先读取一下USART_SR,则能够保证首个数据发送时,不出现覆盖的情况。
上一篇:stm32 串口通信数据乱码
史海拾趣
|
存活之道 有人形容,目前中国的IC设计产业处在国际竞争的“万山围子”里,存活不易,发展更难。好在“山高自有行客路”,存活和发展之道还是有的,把握得好,这个行业由“弱冠”而“成人”的时间应不会太长。 华为和中兴这两家大企业利用其 ...… 查看全部问答> |
|
前言 FPGA(现场可编程门阵列)是由掩膜可编程门阵列和PLD(可编程逻辑器件)演变而来的,并将二者的特性结合在一起,使FPGA既有掩膜可编程门阵列的高逻辑密度和通用性,又有PLD的可编程特性。FPAG技术的发展使得单个芯片上集成的逻辑门数越来越多 ...… 查看全部问答> |
|
代码如下,我通过亮灯显示执行情况,发现我执行休眠时,在设置内存自刷新后,就直接跑飞了。不知道为何? ; 7. Go to Power-Off Mode ldr r0, =vMISCCR ; hit the TLB ldr r0, [r0] ldr r0, =vCLKCON ldr r0, [r0] ...… 查看全部问答> |
|
新手求教Serdes的Deterministic Latency模式 pattern信号与0xBC对不齐 数据检测出错 如题,本人正在使用Cyclone IV GX EP4CGX75CF23,现在在调试serdes的时候遇到了大问题,还请知道的好心朋友帮指导指导,先提前谢过了! Serdes使用的Deterministic Latency模式做收发器,现发现接收到的rx_patterndetect信号有时候与0xBC对不齐, ...… 查看全部问答> |
|
提到TI,不得不说,缘分还真近,听我从头说起。 其实我的专业是网络工程,这个专业其实与电类专业没啥交集,能有点关系的就是计算机体系结构的基础课程—数字电路与逻辑设计,稍微讲了讲常用数字器件与非门什么的。然而,在内心深处 ...… 查看全部问答> |




