本人最近正正在调试STM32F405两块处理器间的SPI通讯,主片的发送程序已调好,功能是循环发送1-100的数字(数据格式为16位),从机的数据接收打算采用中断的方式用一个数组去接收发送的数据,丛机和主机的SPI配置基本一致,只是主从的区别,另外从机的使能采用硬件控制,主机通过一个IO口置地来控制从机的使能。另外中断使能,中断优先级也设置好了。主机的时钟速率为2M多,中断接收数据的程序采用以下流程:查询中断标志位,清除中断标志位,接收本次数据,计数器加1,判断计数器是否大于99,大于则归0,否则出中断。然后调试过程中诡异的事情发生了,如果在中断函数中设置断点,查看变量,可以看到接收到数据,如果全速运行,数据一直是0,及时偶尔有的数据变化,也是跳动一下归0,后来我通过在中断函数中加入标志位的方法(进入中断数组接收完毕置位的方法)去全速运行看标志位,标志位一直为0,也就是说基本没怎么进入中断。。。求解各位大神帮忙解答 |
另外SPI这东西实在折磨死我了,还有就是我用SPI口去读写一个SPI接口的E2PROM,怎么读都读不对,看波形的时序没问题,但是读进来的数不对 |
问题已经解决,之前发送端采用DMA发送,每两个相邻数据之间没有时间间隔,接收端采用接收中断接收不过来,改成正常发送就好了 |
最近又没有stm32开发板申请了,什么时候安排?
STM32f407+TOUCHGFX,用CubeMX生成后编译不通过
STM32 Bootloader提问
目前新项目,MCU采用STM32F407VGT6,文件存在TF卡(SDIO),请问能否通过F4的USB把TF卡里面的txt和excel文件拷贝到U盘?哪个USB可以实现?
STM32F407ZGT6假死现象,看门狗不起作用
STM32F407VGT6使用PLL倍频后芯片会反复重启
CAN接收丢包
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
SPI 通信,既有单字节数据传输,又有多字节数据传输,该如正确使用 DMA?
SD卡log存储