stm32的spi通信问题:程序在前面都没问题,但到了发送接收的while里面就出不来了,帮忙看看有什么问题?急
答案:1 悬赏:50
解决时间 2021-01-23 19:11
- 提问者网友:活着好累
- 2021-01-23 14:44
stm32的spi通信问题:程序在前面都没问题,但到了发送接收的while里面就出不来了,帮忙看看有什么问题?急
最佳答案
- 二级知识专家网友:蕴藏春秋
- 2021-01-23 16:09
首先说明一点:你这个里面都没有使能时钟,怎么可能会正常运行呢。
还有一点:STM32先等待已发送的数据是否发送完成,如果没有发送完成,并且进入循环的话,说明数据发送错误,所以你这个地方顺序也有问题。应该是:
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); //检查指定的SPI标志位设置与否:发送缓存空标志位
SPI_I2S_SendData(SPI1, 0x54); //通过外设SPI1发送一个数据
printf("\n\r 数据发送完毕。\n\r");
还有一点:STM32先等待已发送的数据是否发送完成,如果没有发送完成,并且进入循环的话,说明数据发送错误,所以你这个地方顺序也有问题。应该是:
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); //检查指定的SPI标志位设置与否:发送缓存空标志位
SPI_I2S_SendData(SPI1, 0x54); //通过外设SPI1发送一个数据
printf("\n\r 数据发送完毕。\n\r");
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯