完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32 串口TXE和TC标志位的理解
我们发送数据的时候是先放在数据寄存器(TDR),然后在往移位寄存器里面丢,TXE就是用来判断我们的数据寄存器里面有数据没有,如果为1表示TDR里面的数据全部移到了移位寄存器,并且没有新的数据进来,0就是表示有数据。TC是判断移位寄存器的,但是我们一定要先读SR寄存器,然后再写DR寄存器,也就是移位寄存器,才能让数据一直发送,如果先写入,数据就会丢失。为啥是这样?因为我们的数据寄存器里面有数据时,TXE就会由硬件自动置0,而我们的TC不会,我们要先由软件判断是否有数据,如果有才会置0。 如果TDR寄存器有数据TXE标志位就是0,0&上USART_FLAG就是0,0不等于0,就执行else,bitstatus就被赋值为0,那么我们函数的返回值就是0,我们就可以用if判断函数FlagStatus的返回值,看我们的数据是否发送完毕。 if( USART_GetFlagStatus(USARTx,USART_FLAG_TXE)==0),这样的话我们就可以一直发送数据了。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
652浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
520浏览 3评论
539浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
508浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:02 , Processed in 0.691729 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号