[STM32F2] 从机发送不OK

[复制链接]
732|11
 楼主| supernan 发表于 2019-12-1 11:00 | 显示全部楼层 |阅读模式

现有两块STM32的板子,一个SPI主机,一个SPI从机,
主机发送程序
HAL_Delay(1000);
ucSpi_Tmessage_initial[7]=ucDevice_eChecksum(ucSpi_Tmessage_initial,7);
HAL_SPI_TransmitReceive_IT(&hspi1,ucSpi_Tmessage_initial,ucSpi_Rmessage,1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[1],&ucSpi_Rmessage[1],1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[2],&ucSpi_Rmessage[2],1);//ucSpi_Rmessage
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[3],&ucSpi_Rmessage[3],1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[4],&ucSpi_Rmessage[4],1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[5],&ucSpi_Rmessage[5],1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[6],&ucSpi_Rmessage[6],1);
while(hspi1.State!= HAL_SPI_STATE_READY);
HAL_SPI_TransmitReceive_IT(&hspi1,&ucSpi_Tmessage_initial[7],&ucSpi_Rmessage[7],1);
while(hspi1.State!= HAL_SPI_STATE_READY);

从机一直送8个字节

简单说就是主机发送0K,主机接收OK,从机接收OK,就是从机发送不OK
jiaxw 发表于 2019-12-1 11:03 | 显示全部楼层

单步调试看看
 楼主| supernan 发表于 2019-12-1 11:06 | 显示全部楼层


不能单步调试,有没有什么调试SPI的好方法啊,为什么从机发送就是不OK啊
huanghuac 发表于 2019-12-1 11:08 | 显示全部楼层
看看这个芯片的库函数例子里应该有这一组的演示。
bqyj 发表于 2019-12-1 11:11 | 显示全部楼层
从机发送出现的什么问题
bqyj 发表于 2019-12-1 11:14 | 显示全部楼层
从机数据发送出去了没
 楼主| supernan 发表于 2019-12-1 11:17 | 显示全部楼层
确认往DR里写的数据都是我要发送的数据,但发出的数据好像是移位了,还不定是移了几位,1位,3位四位都有过,也有不规律数据,
huanghuac 发表于 2019-12-1 11:29 | 显示全部楼层
有时好像第一次通迅时是OK的,后面在发就又不行了
spark周 发表于 2019-12-1 11:32 | 显示全部楼层
发AC的话,2C,4C,5C都能出来,
huanghuac 发表于 2019-12-1 11:34 | 显示全部楼层

从机好像就是只能接收的,要想发送,只能切换为主机了。
bqyj 发表于 2019-12-1 11:39 | 显示全部楼层
调SPI,建议通过示波器看波形和数据
 楼主| supernan 发表于 2019-12-1 11:42 | 显示全部楼层
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部