www.whkt.net > 串口利用中断发送多个数

串口利用中断发送多个数

你发送时,用循环控制,发几个字节,循环几次.连续发送多个数据,都是小意思,也是最基本的了.接收更好办了,用中断接收,中断一次接收一次,你就保存一次呗,这有什么难的.

定义一个10个字节的数据缓冲区,然后发送的时候循环发送10次就全部发送出去了.

明显就不合理,你在中断里发送数据,估计你还是在那里等它发送完.当你接收第一次中断的时候,你清除了中断,发送你的数据,此时单片机接收到了n次数据,但是还不能被立即中断,因为你在中断里发送数据,还没退出中断,但此时ri已经置1,发送数据结束后,退出当前中断,由于之前ri置1了(sbuf被刷新很多次,只能接收最近一个字节),又响应了一次中断,所以再发一次数据.解决办法:在中断外发送数据,并采用循环队列接收方式.

收/发一个数据会了,那收/多个的方法也相同.接收最好用中断方式,不影响其它程序执行.发送时,采用查询方式比较方便好写.发送多个,可用for循环控制,循环体内就是发送一个数据的程序,只是循环发送了.在循环发送前,把串口中断关了,ES=0;发送结束再打开中断,ES=1;

参考吴鉴鹰吧里面的资料,我也学习单片机,有吴鉴鹰单片机开发板(评价不错的一款单片机开发板),这样实验+理论,然后看视频学习会更好.有兴趣可以看下 串行口初始化编程格式: sio: mov tmod,#20h ;t1作波特率发生器 mov th1,#x ;定

要根据中断次数和通讯数据量,一般的,两种方法都行;通讯数据数量大建议用查询法.

串口本身就只能一次发送一个字节,strlen(Message)可以获取字符串的字节数,也就是发送次数,用个for循环,你发送一个字节之后把地址偏移一个再发送,直到

串口传输主要是靠数据部由硬件打包成帧数据进行,解决传输多个数据的方案可以是数据压缩或者多串口同时传输.

串口中断的触发两个两件任何一个满足都可以:第一:接收一帧数据完成RI置1时.第二:发送一帧数据完成TI置1时.

建议 去 百度文库 搜这样的 文档十天学会单片机实例100很多 串口通信的 资料

友情链接:9371.net | qhgj.net | hhjc.net | qyhf.net | ppcq.net | 网站地图

All rights reserved Powered by www.whkt.net

copyright ©right 2010-2021。
www.whkt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com