完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
6个回答
|
|
接受标志跟发送不是一定相关的 就是说接收标志为1,只能说收到一个字节,不代表发送已经完成 发送标志为1的时候,表示发送已经完成,可以发下一个 你说的自发自收,我理解是一个测试程序,收到一个字节就返回一个字节,或者就是单片内部调试的自发自收 但无论如何,发送标志为1,才表示一个字节发送完毕
最佳答案
|
|
|
|
发送和接收都有一个标志位,指示数据是否已经发送或接收完成,只要完成就可以进行下一个发送
一般来说,可以做成中断,发送或接收完成都可以产生中断,然后发下一个字节 如果想节省CPU开销或数据较多,可以使用DMA方式,前提是你的CPU支持这些操作,例如STM32的就可以用DAM |
|
|
|
andy_wsj 发表于 2015-10-27 10:58 等到其接收标志位置1后就可以进行第二次发送?我的是让单片机自发自收的 |
|
|
|
andy_wsj 发表于 2015-10-28 09:14 那确实是一个测试单片机的程序,我发现其中一段在发送完一次后不久就发送第二次,结果发送失败,我原先是怀疑这可能是单片机设计者的失误,不过现在发现这个设计者是知道的,所以就不理会了。不过还是得感谢你俄解答 |
|
|
|
发送或接收完一帧数据就会申请中断,看看教材吧
|
|
|
|
如果自发自收,理论上,发送完成和接收都完成才能发下一个,但这个时间很短,看上去就像同时完成一样 任何时候,无论自发自收还是对外通信,发送标志完成之后,再发下一个才是可靠的;接收标志完成并且被复位之后,才会接收下一个,否则后面的数据可能丢掉了 如果是外部设备给单片机发送数据,一般使用中断接收,一旦收到数据,进入中断,将数据立即拷入内存,以免影响下一个字节,一般来说这个过程很快。如果使用查询,那么代码量很大的时候,可能会影响下一个字节,这种情况一般较少 一些单片机的发送和接收有影子寄存器,例如程序将数据写到发送寄存器,单片机自动将发送寄存器写入影子寄存器,这时候发送就已经完成,标志变1,但实际数据可能还没发出去 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
479 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
229 浏览 0 评论
334 浏览 0 评论
165 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
496 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11972 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 18:20 , Processed in 0.793820 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号