delphi7.0 spcomm3.0 向串口‘发送’和‘接收’字符串

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-05-17
我用STM32实现串口的接收与发送,现在只能接收和发送一个字节,怎么接收和发送一个字符串,求详细代码

给你个思路:先定义一个数组,在串口中断里,设置接收中断,当连续发送字符串时,每接收一个字符,就保存在数组里,但是串口中断里要设置变量来引导字符放在数组的位置

这个先看一下发送方的协议,是否会"粘包"
串口通信,比如设置波特率为9600,那么每秒1200字节,每字节大约1ms
如果超过2ms(或设置大一点,比如100ms)仍然没有接到下一个字节,则认为是一条新的数据
而如果发送方没有任何间隔的就是不断发送
那么你只能先将收到的字节放到队列里,然后自己解析到哪里算一条,然后把数据从队列里移除.

有时候牵涉到硬件部分的编程,时序很重要.这种情况多半sleep一下就可以了.
可以理解为"给点时间让硬件思考一下"

sleep(1000)
if Comm.WriteCommData(str, Count) then
memo1.Lines.Add(str)
else
memo1.Lines.Add('数据发送错误!')

你的spcomm3.0控件问题!
你重新换下载一个spcomm控件
就可以了!