
在while中一直使用HAL_SPI_TransmitReceive_DMA发送接收数据,循环几次后就会一直为HAL_BUSY状态,查看SPI状态结构体可看到State始终为HAL_SPI_STATE_BUSY_TX_RX状态。 通过查看HAL库,可以找到State在HAL_SPI_IRQHandler中可被设置为READY状态。但实际使用时,会有中断函数不触发的情况出现,因此State始终为HAL_SPI_STATE_BUSY_TX_RX状态,导致HAL_SPI_TransmitReceive_DMA无法正常运行,我不知道是不是哪里设置不对还是其他问题导致的。 这是STM32Cube的中断设置 |
关于STM32H563的STlink-V3无法识别的问题咨询
求STM32H503 用户区FLASH基于HAL编程例程,谢谢
STEVAL-MKI109D 用PB8/PB9作为I2C的功能,无法发送数据?
有没有哪位大神提供一个STM32H523或者STM32H563的串口升级的IAP程序
同样的都是M33核,什么决定频率上限?
在使用nucleo H7开发版 USART2发送数据测试的时候,RTS脚产生与TX脚一样的伴随波形,波形与TX脚一致
STM32H523中FLASH扇区擦除到0x8020000后面时擦除不干净,前面的扇区擦除是正常的,是芯片原因吗?
STM32H533的USB使用问题
stm32h5 在VDDIO2=1.2V, I3C 频率12.5Mhz时为什么读取数据会错位?
求问stm32H5唯一设备id地址?
我这边测试,当时钟频率高的时候,如果IO 速度设置过低会导致 SPI的完成中断没触发。
且波形已经变形了,应该超出了范围。
可以试着检查一下IO 速度或降低一下时钟频率试试。
时钟频率我已经拉到3.9MBits左右了 在主频250Mhz下做了64分频 依然会出现
看一下时钟波形是否正常。
我这边验证时,发现输出波形不正常,就无法触发完成中断。
可以将clock继续降低到几百k,验证一下。
查看波形是正常的 此为中断不触发前最后一个发送的sclk
这是整个的,20s前时刻上电启动,25s后左右由于中断不触发,标志位不置位,停止发波
最好找个示波器看一下具体波形的样子。
我又深度测试了一下,发现一个明显的对比,我在mxcube初始化了lpuart1,uart4,uart5三个串口,但是我没有使用它们,只是初始化,如果我将三个串口的初始化屏蔽掉,中断触发就是正常的,我打开任意一个串口,都会出现中断不触发,而且初始化越多串口,出现屏蔽不触发的时候越早
附件是我测试的代码,当然SPI1是悬空的,可以在你的板上试试看。
TEST SPIDMA ready signal.7z
6 天前 上传
点击文件名下载附件
下载积分: ST金币 -17.96 MB, 下载次数: 1, 下载积分: ST金币 -1
多谢,不过方便帮我导出一个Keil的工程吗,我没有EWARM,我打开IOC发现咱们的IOC版本不一致,我想用你的IOC版本生成的工程来测试
可以用HAL_SPI_Transmit+HAL_SPI_Receive重写写一下收发逻辑试试
没用 我测试了只用HAL_SPI_Transmit_DMA/IT 一样不触发中断
Core.zip
4 天前 上传
点击文件名下载附件
下载积分: ST金币 -17.7 MB, 下载次数: 0, 下载积分: ST金币 -1