打印
[STM32F2]

STM32F2 的SPI从机发送有问题

[复制链接]
1874|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
longfenghugui|  楼主 | 2015-12-7 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 longfenghugui 于 2015-12-10 15:43 编辑

现有两块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,又不能单步调试,有没有什么调试SPI的好方法啊,为什么从机发送就是不OK啊

好烦啊,有没有大神啊



沙发
longfenghugui|  楼主 | 2015-12-10 15:44 | 只看该作者
有没有大神啊

使用特权

评论回复
板凳
309030| | 2015-12-10 19:53 | 只看该作者
从机发送出现的什么问题

使用特权

评论回复
地板
lwsn| | 2015-12-10 21:03 | 只看该作者
从机数据发送出去了没

使用特权

评论回复
5
longfenghugui|  楼主 | 2015-12-11 14:40 | 只看该作者
确认往DR里写的数据都是我要发送的数据,但发出的数据好像是移位了,还不定是移了几位,1位,3位四位都有过,也有不规律数据,

有时好像第一次通迅时是OK的,后面在发就又不行了

使用特权

评论回复
6
longfenghugui|  楼主 | 2015-12-11 14:41 | 只看该作者
发AC的话,2C,4C,5C都能出来,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

147

帖子

2

粉丝