标题:
新手求教c语言问题 这个字符存到数组的语句,不应该使用for循环吗
[打印本页]
作者:
reking8
时间:
2023-6-17 01:03
标题:
新手求教c语言问题 这个字符存到数组的语句,不应该使用for循环吗
请问这个字符存到数组的语句,不应该使用for循环吗?代码是从上到下执行,只有这么一句,不是只能存入一个字符吗?这段代码是中断程序中接收GPS发送的数据。求大神指点,
IMG_20230616_115707.png
(80.12 KB, 下载次数: 50)
下载附件
2023-6-17 00:58 上传
作者:
xuyaqi
时间:
2023-6-17 06:17
串口硬件收到一个字节,发出一个中断执行这段程序,字节存入rev_buf数组,数组标号+1,程序转入主程序,中断一次存一个,不用for。
作者:
wufa1986
时间:
2023-6-17 08:19
先理解中断是啥概念,别一上来就看程序
作者:
qsssuv
时间:
2023-6-17 09:24
看来楼主对底层不了解。每接收一个字节数据,中断都触发一次,因此,当你意识到这个串口无法一次性识别一帧数据的时候,应该差不多明白了,需要用一个变量自加建立索引,来存储每个字节数据。
作者:
chxelc
时间:
2023-6-17 11:56
软硬结合,两手都要抓,要手都要硬,就能更好理解代码了。
作者:
13205495918
时间:
2023-6-17 15:39
这是属于单片机自身的问题了
和C语言关系不大
作者:
Hephaestus
时间:
2023-6-17 16:03
字符串不定长,以\n作为结束标志,你又不知道具体长度怎么循环???
作者:
wulin
时间:
2023-6-17 16:18
/*************************************/
void Uart_Receive() interrupt 4
{
static uchar ch=0; //静态计数变量
RI=0; //接收中断请求标志位清0
rev_buf[ch]=SBUF; //接收到的数据串保存在缓存数组
if(rec_buf[0]=='$') //验证数据头,如果错误,被后续数据覆盖
{
ch++;
if(rec_buf[ch-1]=='\n')//结束
{
flag=1; //接收完成标志置1
ch=0; //计数变量清0
}
}
}
作者:
kk17328
时间:
2023-6-17 19:01
每接收一个字节,都会产生中断,只不过是在底层处理了。都是有协议处理的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1