问题描述
我试图建立两个使用SPI的STM32板之间的简单通信(NUCLEO-F401RE板作为全双工主设备,而NUCLE0-L152RE板作为全双工从机)。我还无法实现。这是我的代码:
TX
uint8_t txdata[4] = {0x01,0x02,0x03,0x04};
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI2_Init();
MX_USART2_UART_Init();
printf("STM32F401RE - Master TX\r\n");
while (1)
{
HAL_SPI_Transmit(&hspi2,txdata,4,100);
HAL_Delay(200);
}
}
RX
uint8_t rxdata[4] = {0x00};
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI2_Init();
MX_USART2_UART_Init();
printf("stm32l152RE - Master RX\r\n");
while (1)
{
HAL_SPI_Receive(&hspi2,rxdata,1000);
for(int i=0;i<sizeof(rxdata);i++)
{
printf("%X",rxdata[i]);
}
printf("\r\n");
HAL_Delay(1000);
}
}
这是我收到的:
stm32l152RE - Master RX
1413
1141
4141
4131
4131
4131
3131
4141
4141
3141
3141
4141
4131
4131
4141
3141
3141
4141
4141
4141
4131
3141
3131
4131
3131
4131
...
我希望rxdata为1234(0x01、0x02、0x03、0x04),但是正如您所看到的,数据已经移位,甚至没有看到字节0x02。可能是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)