我想使用CH582M的串口轉(zhuǎn)發(fā)功能,代碼如下:
uint8_t?RxBuff[100]; int?main() { ????uint8_t?len?=?0; ????uint8_t?keyvalue?=?0; ????SetSysClock(CLK_SOURCE_PLL_80MHz); ????DelayMs(5); ????GPIOA_SetBits(GPIO_Pin_9); ????GPIOA_ModeCfg(GPIO_Pin_8,?GPIO_ModeIN_PU); ????GPIOA_ModeCfg(GPIO_Pin_9,?GPIO_ModeOut_PP_5mA); ????UART1_DefInit(); ????while(1) ????{ ????????len?=?UART1_RecvString(RxBuff); ????????if?(len?!=?0){ ????????????keyvalue?=?RxBuff[2]; ????????????UART1_SendString(RxBuff,?len); ????????????UART1_SendByte(keyvalue); ????????} ????} }
基本的代碼邏輯是,CH582M從串口1收到了數(shù)據(jù)以后,再從串口1轉(zhuǎn)發(fā)出去。
其中CH582M串口1的RX引腳接了是ESP32的串口TX,CH582M的TX引腳接的樹莓派的RX引腳。
ESP32發(fā)送端的buffer如下:
uint8_t?buffer[8]?=?{1,?2,?3,?4,?5,?6,?7,?8}; uint8_t?buffer1[8]?=?{0,?0,?0,?0,?0,?0,?0,?0};
buffer和buffer1間隔100ms發(fā)送。
按照我的理解,由CH582M轉(zhuǎn)發(fā)出去的數(shù)據(jù)應(yīng)該是:
read?from?uart:1?2?3?4?5?6?7?8 read?from?uart:3 read?from?uart:0?0?0?0?0?0?0?0 read?from?uart:0
但是,實際從樹莓派上讀出來的數(shù)據(jù)是:
read?from?uart:1?0?2?0?3?0?4?0?5?0?6?0?7?0?8?0 read?from?uart:0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0
請問,這是怎么回事,或者說我的配置少了些什么?