c语言单片机编程中,怎样将一个串口的到得字符串赋值给一个数组

UART_RX是串口接收到。如何把UART_RX存到一个数组,然后转为整型数字
已将接收到的数据送入变量 UART_RX,但是用UART_RX的时候会出错
error C247: non-address/-constant initializer
怎么解决啊。
最新回答
一袭水袖舞倾城

2024-05-03 00:25:14

1、串口字节为:SBUF
暂存数组:A[]
依次将接收到的字节存入A[0],A[1],A[2],...A[n],
接收完毕,存入

字符串
结束标识:A[N+1]=0
A就代表一个字符串。
如果是一串数字,要转为整数。

2、例程:

#include<reg51.h>
#define uchar unsigned char
uchar A[16],num;
void uart() interrupt 4
{
if(RI)
    {
    RI=0;
    A[num]=SBUF;
    num++;
    num&=0x0f;
    }
}
main()
{
}
别再相怀

2024-05-03 01:06:49

#include<reg51.h>
#define uchar unsigned char
uchar A[16],num;
void uart() interrupt 4
{
if(RI)
{
RI=0;
A[num]=SBUF;
num++;
num&=0x0f;
}
}
main()
{
........................自己编吧
}
夜巴黎

2024-05-03 05:46:42

你得注释, 越看头越大, unsigned char fifo_head=0; //往fifo写入数据时的位置unsigned char fifo_tail=0; // 读出fifo时的位置unsigned char Rx1_pos=0; //当前的接收位置unsigned char Rx1_num=0; //数据长度unsigned char Frame_in=
南語

2024-05-03 10:55:31

要想一个字符一个字符的赋值,就老老实实写个循环吧
雨零

2024-05-03 03:04:54

串口字节为:SBUF
暂存数组:A[]
依次将接收到的字节存入A[0],A[1],A[2],...A[n],
接收完毕,存入字符串结束标识:A[N+1]=0
A就代表一个字符串。
如果是一串数字,要转为整数:
int Temp=0;
char i;
for(i=0;i<n+1;i--)
{
Temp=Temp*10+A[i];
}
如果串口接收的是数字的ASCII码字符串,则:
for(i=0;A[i]!=0;i--)
{
Temp=Temp*10+A[i]-'0';
}
Temp为所得整数。
追问
依次将接收到的字节存入A[0],A[1],A[2],...A[n],怎么实现呢