51单片机串口查询方式收发字符串,程序求解

51单片机串口查询方式收发字符串,程序求解,第1张

编程目的,单片机答厅咐把从PC发送的字符串清纯,原样发送给PC。想用查询法,程序运行出错,求指正。#include #include #include#define uchar unsigned char #define uint unsigned int #define rxin 90uchar shebeihao[]uchar code OK[]="OK"uchar idata systembuf[rxin]uchar rx,sxvoid delay(uint z){ uint x,yfor(x=zx0x--) for(y=200y0y--)} void uart(){ TMOD=0x20//设置定时器1为工作方式2 设置定时器0为工作方式1 TH1=0xfd/伏斗/波特率9600 TL1=0xfdPCON=0x00SCON=0x50TR1=1//EA=1//ES=1}void sendchar(uchar ch){SBUF=chwhile(TI==0)TI=0}void sendstring(uchar *p){while(*p) { sendchar(*p)p++} sendchar(0x0D)sendchar(0x0A)}void main(){ sx=0uart()if(RI) { delay(2000)if(sx0) { sendstring(shebeihao)} }

这是写这段代码的人自己定义的数据帧起止符而已,空扒谈0xfd表示一帧数据的开始,0xfe表示一帧数据的结束,比如发送的一段数据为 12 34 56,那么单片机这边接收到的就是 fd 12 34 56 fe,这个起止格式是由给单片机发送串口数据的设备决定的,比如PC上通过串口调试助手给430发送数据,那么如果他指定了这种起止格此芹式就按斗碰这个发,单片机程序也要如你这段程序这么写,如果他没有这起止格式那么单片机程序就不必这么写

至于从你说的这个模块发送过来的数据接收程序怎么写,你得看这模块的DS,搞清楚它跟你这430通信发送数据时是什么格式

定义一个变穗唤量 int 的

接收中升册断到来的时候,变量清零

在单片机的接收中断在的一个接收周期内,连续判断A的出现猜笑凯,出现一次变量加一

当接收中断完成后,发送变量的值到电脑,

这样就完成字符A,数量的统计


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12365754.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存