完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2 条评论
3个回答
|
|
从您的描述来看,问题可能出在以下几个方面:
1. 中断优先级:请检查您的中断优先级设置是否正确。如果中断优先级设置不当,可能会导致中断处理不及时,从而影响数据发送。 2. 中断服务程序(ISR):请检查您的中断服务程序是否正确处理了发送数据。确保在中断服务程序中正确地设置了TXD口的状态,并在发送完一个字节后立即发送下一个字节。 3. 串口配置:请检查您的串口配置是否正确,包括波特率、数据位、停止位和校验位等。错误的串口配置可能会导致数据发送不完整。 4. 程序逻辑:请检查您的程序逻辑是否正确。在发送数据之前,确保已经正确地设置了TXD口的状态。同时,检查程序中是否有其他可能导致数据发送不完整的逻辑错误。 5. 硬件问题:如果以上方法都无法解决问题,可能是硬件方面的问题。请检查您的开发板和连接线是否正常工作,以及TXD口是否与其他设备产生干扰。 建议您按照以下步骤进行排查: 1. 检查中断优先级设置。 2. 检查中断服务程序(ISR)是否正确处理发送数据。 3. 检查串口配置是否正确。 4. 检查程序逻辑是否有错误。 5. 如果以上方法都无法解决问题,检查硬件设备和连接线。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。
最佳答案
|
|
|
|
问题已解决,串口发送中断只是把数据转移到串口发送缓存器中,数据并没有发出,此时在中断中将TX口设置为普通I/O口,就导致后续数据发送丢失了。
|
|
|
|
我的这种问题出现的原因是,需要理解串口发送数据的过程,数据从数组转移给串口发送缓存寄存器,然后由串口发送缓存寄存器通过I/O发送出去。我的写法犯了个错误,当串口发送中断触发后,正在将最后一字节数据移送到串口发送缓存寄存器,此时我自以为串口数据已经发送完,所以就将TX相应I/O口切成普通输出I/O口,导致之前在串口发送缓存寄存器中的一字节数据和刚赋予串口发送缓存寄存器的一字节数据没有成功发送出去。谨记谨记!!!感谢解答帮忙。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12010 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:48 , Processed in 0.565043 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号