Microchip
直播中

crhm51900928

8年用户 243经验值
私信 关注
[问答]

怎么从UART处理数据

大家好,我在从PIC18f4550的UART获取数据时遇到一些困难,希望有人能帮我找到问题。这个问题开始于操纵所获取的数据。在我的主代码中,来自UART的数据被命名为char数组temp,但是无法对其进行操作,例如将该数据保存为行检查矩阵。错误是:(202)OnLyValues可以被赋值或修改。无符号int=0;而(1){同时()!UARTHARRXARRADYY());信息=RCREG;IF(If)!= ''r')i++;否则{INF[i+1]=````;0;;} } }无效UARTHARY写(char INF[]){int i;(i=0;INF)!='0';i++){TXREG=info;.(UART_TX_Busy());}char UART_RX_Ready(void){.(char)RCIF;}char UART_TX_Busy(void){.(char)!TXSTAbits.TRMT;}void main(){int i=0;char temp[],spectra[50][20];...而(1){for(i=0;i<3;i+++){UART_Read(temp);spectra=temp;}UART_Write(spectra);}

回帖(3)

杨玲

2020-3-19 10:57:13
您已经将spectra声明为二维数组,但是当您试图写入它时,您只指定了一个维度,并且没有定义一个数组。您需要指定大小。
举报

胡红枚

2020-3-19 11:12:14
谢谢你的反馈。尺寸没有定义,因为它可能会变化。相反,在UARTHAREAD函数中,当输入“r”时,字符数组被分隔。我假设它是有效的,因为如果代码包含输入就没有问题地被重新发送到UART。这个逻辑有什么问题吗?我定义了光谱中的第二维,误差消失了,但是在UART中仍然不能正确地写入光谱矩阵。
举报

吴键洪

2020-3-19 11:35:11
更好的是,完全消除临时数组,直接将指向光谱数组中需要的位置的指针传递给UART_Read()函数。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分