小学生
最后登录1970-1-1
在线时间 小时
注册时间2020-8-1
|
30火花
本帖最后由 SuperBy 于 2021-4-6 15:32 编辑
我画了一个32最小系统,上面有两个M7内核的32,它们在PCB上用SPI线连接。
两个32都能正常点灯,闪灯,串口打印,说明正常工作。
然后我想要两个32之间主从SPI通信,就遇到问题了。
无论我用普通还是中断还是DMA,都没有任何反应,连乱码都没有,就好像我没有连接一样。
CubeMX配置如下;
主机:
从机:
时钟配置
代码是最普通的SPI代码,这个代码在我同样板载两个F4芯片的最小系统中可以正常通信,在这个板子上就不行了。
主机while(1)
{
HAL_UART_Receive(&huart1, uart_rx, 1, 100);
if(uart_rx[0] == 0x0d)
{
HAL_SPI_Receive(&hspi1, (uint8_t *)spi_rx, 2, 100);
for(i=0; i<4; i++)
{
printf("第%d个数据 : 0x%x\n\r",(i+1),spi_rx);
}
uart_rx[0] = 0;
}
HAL_Delay(500);
}
从机
while(1)
{
for(i=0; i<4; i++)
{
HAL_SPI_Transmit(&hspi1, (uint8_t *)SPI1_Tx, 8, 100);
}
}
代码确实很简单,但是在同样是SPI连接的两个F4芯片最小系统板上就可以通信,这个板子就不行,像回调函数判断的我都试过,都是没用的,我是第一次用M7内核的32,这个问题卡了很久了,求大家帮忙解决一下,给个思路什么的,非常感谢!!!
|
|