[其他ST产品] 串口中断接收到的数据怎么放到一个数组变量里

[复制链接]
 楼主| 发表于 2017-3-9 10:23 | 显示全部楼层 |阅读模式
void InitUART(void)//11.0592MHz 9600
{
    SCON = 0x50;//8位数据,可变波特率
    AUXR |= 0x04;//定时器2时钟为Fosc,即1T
    T2L = 0xE0;//设定定时初值
    T2H = 0xFE;//设定定时初值
    AUXR |= 0x01;//串口1选择定时器2为波特率发生器
    AUXR |= 0x10;//启动定时器2
    ES=1;
    EA=1;
    REN=1;
  }void Uart_Init(void) interrupt 4
{
                unsigned char temp;
    RI=0;
    temp=SBUF;
         // putptr&=0x0f;
    SBUF=temp;
    while(TI==0);
    TI=0;
}

想把串口中断接收到的数据放到一个数组变量里,想着在中断函数里把 “temp”定义为一个数组,可是存的数据不对,求教!!!




发表于 2017-3-9 11:26 | 显示全部楼层
还是把 temp数组定义成全局的吧
发表于 2017-3-9 11:31 | 显示全部楼层
unsigned char temp;
改成全局

temp[i]=SBUF;
i++;


 楼主| 发表于 2017-3-9 12:31 | 显示全部楼层
feelhyq 发表于 2017-3-9 11:26
还是把 temp数组定义成全局的吧

定义成全局的数组 我也试过 还是实现不了
 楼主| 发表于 2017-3-9 12:33 | 显示全部楼层
wkshengren 发表于 2017-3-9 11:31
unsigned char temp;
改成全局

改成全局的变量 temp=SBUF; i++; 这种方法我在网上看到过,但是我实现不了
发表于 2017-3-9 12:42 | 显示全部楼层
歇斯底里 发表于 2017-3-9 12:33
改成全局的变量 temp=SBUF; i++; 这种方法我在网上看到过,但是我实现不了

这个就涉及到C语言的知识了,楼主要加油哇
 楼主| 发表于 2017-3-9 13:38 | 显示全部楼层
feelhyq 发表于 2017-3-9 12:42
这个就涉及到C语言的知识了,楼主要加油哇

可以了 哈哈
发表于 2017-3-10 08:19 | 显示全部楼层
3楼的额不错,temp[i]=SBUF;i++;这样就把接收到的数据暂存到数组里,然后你的STC单片机在对每个数据进行逐一判断
发表于 2017-3-10 09:15 | 显示全部楼层
可以用一个全局变量来控制
如:
unsigned char temp[20];
unsigned char i;
void Uart_Init(void) interrupt 4
{
                unsigned char temp;
    RI=0;
    temp[i]=SBUF;
         // putptr&=0x0f;
    SBUF=temp;
    while(TI==0);
    TI=0;
    i++;
    if(i>=19)
    i=0;
}
发表于 2017-3-10 10:18 | 显示全部楼层
你说的这种通信要求可以采用帧传送的方式,自己要确定一个帧格式,例如:
0X55//帧头标志
0XAA
//128字节数据
校验字节1
校验字节2
校验字节是防止数据传输错误,校验方式可自行选择。
如果数据不是很重要,定义一个132字节接收队列(全局变量数组),如果数据很重要,定义两个132字节接收队列,一个做接收缓冲,接受正确才更新正式队列。还要定义一个接收指针,屋顶太阳能发电leaptonenergy.com当接收到帧头标志,接收指针清零,以后每接收一个字符,以接收指针做下标将数据存入接收数组。
发表于 2018-4-18 20:57 | 显示全部楼层
改成全局变量是必须的
发表于 2018-4-19 08:22 | 显示全部楼层
i++以后不要超出数组范围
发表于 2018-4-19 21:26 | 显示全部楼层
楼主明显C语言基础不过关,你们别瞎帮忙了,反而害了他.
发表于 2018-4-21 12:21 | 显示全部楼层
可以了 哈哈

楼主怎么实现的
发表于 2018-4-21 15:42 | 显示全部楼层
应该是改成全局变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

70

帖子

1

粉丝
快速回复 返回顶部 返回列表