
VC下用CSerialPort类进行串口编程
http://zhidao.baidu.com/link?url=k36OcIy91UdrO74r21fL3mnbsYzspRs54EoYRU7Uk7iY5h2CHpwK...
http://zhidao.baidu.com/link?url=k36OcIy91UdrO74r21fL3mnbsYzspRs54EoYRU7Uk7iY5h2CHpwKHfBYpgZRBF01Si0Lb67RZ7a0H8iKuaWyQ2oxSL55VEt3uCd8a6SCzku
我在看到您回答的这个问题,我现在遇到同样的问题,我是想直接在龚建伟串口调试助手上改,但serialPort.Read这个函数用不起是为什么啊?我接收的数据帧头AF,再接收64个字节的数据,帧为FA。在OnCommunication函数下面怎么改啊? 展开
我在看到您回答的这个问题,我现在遇到同样的问题,我是想直接在龚建伟串口调试助手上改,但serialPort.Read这个函数用不起是为什么啊?我接收的数据帧头AF,再接收64个字节的数据,帧为FA。在OnCommunication函数下面怎么改啊? 展开
展开全部
serialPort.Read这个函数用不起???还是不起作用
帧嘛
定义一个 BYTE buffer[1+64+1]; 也就是 buffer[66];
再定义一个int bufferLength = 0;
OnCommunication(...)中
{
if (0 == bufferLength) // 帧头还未接收
{
if (0xAF != ch) // 不是帧头
return; // 返回
}
if (65 == bufferLength) // 帧尾还未接收
{
if (0xFA != ch) // 不是帧尾
{
bufferLength = 0; // 丢弃已经接收的数据,重置缓冲区有效数据长度为零
return; // 返回
}
}
// 要实时显示接收到的 ch ,在这里添加代码即可
buffer[bufferLength] = ch;
bufferLength++;
if (66 == bufferLength)
{
// 一帧已经接收完毕,数据在 buffer 中
bufferLength = 0; // 取出帧后,重置缓冲区有效数据长度为零
}
}
来自:求助得到的回答

2023-06-12 广告
STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能化的发展。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询