当往 SBUF写入1个八位数据时,启动发送 *** 作,数据从TXD端实现异步发送。发送完一帧数据后自动置TI=1,请求中断。要继续发送时,TI清零便可。
你可以自己写一个连续发送的函数:只要发送前9个数据后,TI清零就成。
或者写一个一次之功能发送一个字节的函数,然后利用循环调用前面的函数,实现10个数据的发送。。。
大多数情况都用后者吧。。。
发送一般是不需要放在中断中的(我写了10年程序,从没放过,^_^)
你改成这样
SBUF=sendH;
while(TI==0);
TI=0;
SBUF=sendL;
while(TI==0);
TI=0;
直接观察TI来判断是否发送成功,而不是靠延时,最好是你写成专门的发送函数,这样程序更清晰
如果是单片机编程,你可能需要把大于255的数值拆成多个字节,在中断函数中依次发送和接收。
如果是PC机的应用层,可以直接调用API传入char类型的指针和字节长度进行发送。
若选择的串行通信字节长度小于8位,则高位会自动清零,如果要在非8位串行通信中传送字节流,又不希望发生高位截断,则需要先把字节流分解成相应长度的单元,存入一个新的数组中再发送。
太阳雨多年积攒极其珍贵的原创VB串口通信技术资料V40 (600M)
VB串口通信编程源码200个,多种行业多种应用
VB串口通信技术文章160篇,详尽地对VB串口通信的诠释
VB串口通信电子书籍16部,工业通信名家著作,经典细致
VB串口通信控件16个,简化串口通信编码,提高开发效率
VB串口视频教程44个,一套完整视频教程,讲解直观,更快掌握
超级赠品一:OSI网络模型教程48M
超级赠品二:串口硬件层知识大全资料包24M
超级赠品三:串口调试工具80个,应用于各种串口调试与校验计算
超级赠品四:程序员发展类文章和书籍12部,帮助您的成长,健康和发展
超级赠品五:更送虚拟串口调试软件, 帮助你在没有串口的电脑上也能正常调试
你在淘宝搜索“太阳雨VB串口资料”就可以找到,希望可以帮助到你。
同时,还有"太阳雨VC串口资料"和"太阳雨DELPHI"串口资料
参考思路:
串口在调试代码的时候,打印信息很方便,MCU,DSP,ARM,都是集成的串口控制器,向SBUF写数据,然后启动发送,就是可以开始发送数据了,但是FPGA没有这个集成的串口控制器,这就需要自己模拟IO来实现的;
需要连续发送16bit的数据,也就是说,每次启动串口发送,都是发送2个字节数据,只要TxD_start输入一定频率的矩形波,就是连续将16bit数据发送出去了。
以上就是关于上位机与下位机串口通信,串口工作方式1每次只能发1个字节的数据,如何发送多字节数据,具体如下全部的内容,包括:上位机与下位机串口通信,串口工作方式1每次只能发1个字节的数据,如何发送多字节数据,具体如下、单片机串口一次发送两个字节的问题、COM口(串口)传送的数据最大是不是255, COM口(串口)好像是8位,1字节的,那应该最大也就传输255吧等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)