请问单片机串行口同信中,若从上位机向单片机发送一字符串,单片机如何接收SBUF中的数据呢,是用一个
答案:4 悬赏:0
解决时间 2021-02-16 05:44
- 提问者网友:心裂
- 2021-02-15 09:38
请问单片机串行口同信中,若从上位机向单片机发送一字符串,单片机如何接收SBUF中的数据呢,是用一个
最佳答案
- 二级知识专家网友:如果这是命
- 2021-02-15 11:18
单片机接收数据,无论是中断接收,还是查询接收,通常都是根据接收标志位,来判断接收一个字节。写程序之前,都会根据接收数据长度建立一个接收数组,比如根据协议,应该接收25个字节,那就建立一个大于等于25个字节的数组,根据判断条件(可以根据长度判断,可以根据特定字节判断),完成25个字节的接收后,再根据协议,对25个字节进行分析归纳,如果协议中有整形数据(8位机中整形变量为两个字节),就可以截取其中处于正确数组位置的两个字节,高字节先赋值给整形变量乘以256,或者直接左移8位,再加上低字节。就可以了。
全部回答
- 1楼网友:随心随缘不随便
- 2021-02-15 14:42
铁道公司躺枪啦
char a[10] = {‘1’, ‘2’, ‘3’, ‘0’, ‘6’, '\0'};
char i;
int x = 0x0000;
for(i=0;a[i];i++)
{
x = x * 10 + (a[i] - '0');// 自己去查ascii码表不解释
}
- 2楼网友:為→妳鎖鈊
- 2021-02-15 13:52
单片机是接受一个字节,不是一个数组,正常使用 unsigned char型的变量类型。当RI为低电平时表示接受完成,直接用去读取SBUF寄存器里的数据,就是发送的数据了
如果要一次性发送多个,也是一个字节一个字节的接收。
- 3楼网友:一场云烟
- 2021-02-15 12:32
接收肯定是一个字节一个字节的接收,接收后如何处理数据要看上位机之间的协定,比如数据类型之类的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯