我從PC終端送一個字串至STM32F103中,並將接收的字串放入一個矩陣ARRAY之中!再做後續的資料處理,可以我的ARRAY卻只有第0位有數值,且是字串的最後一個字元。所以想要請問我程式中哪裡出錯呢?謝謝//接收字串資料 void USART_Receive_String(void){ u8 Res; u8 point=0; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { Res=USART_ReceiveData(USART1); USART_RX_BUF[point++] = Res; USART_SendData(USART1, Res); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); point = 0; } } 數據處理函式區塊 if (j == 4 ) { USART_Receive_String(); tempRxBuffer[0] = USART_RX_BUF[0]; tempRxBuffer[1] = USART_RX_BUF[1]; } 如果我輸入的是"123456" 看到 USART_RX_BUF[0]=6一定是最後一個字元, 不懂為甚麼不會是 USART_RX_BUF[0]=1 USART_RX_BUF[1]=2 USART_RX_BUF[2]=3....... 請問是哪裡出錯了呢? 謝謝 |
评分
查看全部评分
USART_RX_BUF[point++] = Res; // 保存这个字节
...
point = 0; // 这里又把指针放到0位
综上,只修改了USART_RX_BUF[0]的数据
评分
查看全部评分
评分
查看全部评分
因为,每一次进入函数,你的 point 都为0,
所以只能接收到最后一位数据。
只要把
u8 point=0;
改为
static u8 point=0;
就可以了。
评分
查看全部评分