
编程目的,
单片机答厅咐把从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,数量的统计
评论列表(0条)