历史上的今天
今天是:2025年08月14日(星期四)
2019年08月14日 | 关于stm32的spi发送命令时的注意事项
2019-08-14 来源:eefocus
近日在进行一个倾角仪产品操作时,发现了stm32在往外发送数据时出现的一个问题。类似问题以前也出过,现在再次出现。特地写下来提醒自己注意以后防止再犯错。
该倾角仪adis16210与主控制器stm32通信时选用的是spi接口,并且在后续的操作过程中是使用stm32的官方函数库。在初期程序调试时,只是进行了spi的读操作(adis可以不用设置初试参数),能正常进行spi的读操作,能获取到随姿态变好的角度值。
在使用过程中,发现倾角仪更新数据太慢,因此需要对倾角仪进行设置。在程序的初始化阶段,增加了一个spi的写操作,写入一个字节以设置该传感器。更新完程序,运行程序发现再无法正常读取传感器数据了,传感器总是返回0。多次测试,发现该写操作导致倾角仪数据出现问题。
查阅数据手册,发现在进行spi双向通信时,需要及时读出spi接收寄存器数据,否则会出现缓存溢出问题。尽管在程序的初始阶段,我们只是进行了spi的发送操作。但是因为spi是双向通信,在主设备发送数据时,有发送时钟,因此主设备也会接收到数据,也即接收缓冲器中有数据,我们需要进行一下读取操作(结果可以当无效数据丢弃),以读空数据。
因此,在stm32发送一个设置参数之后,我等待发送完成,等待接受完成,再进行了一下读spi接受寄存器的操作。再在程序原来位置进行倾角数据读出时,可以正常读取数据。
因为spi的工作原理类似,因此其它器件在多次发送数据时,中间如果不进行spi接收缓冲器清空操作,就有可能导致接收缓存器溢出,当然有的器件溢出了可能会继续正常工作,但stm32系列芯片在溢出时肯定不会再继续正常工作了。
史海拾趣
|
概述 直接数字频率合成技术(Direct Digital Frequency Synthesis,即DDFS,一般简称DDS),是从相 位概念出发直接合成所需要波形的一种新的频率合成技术。目前各大芯片制造厂商都相继推出采用先进 CMOS工艺生产的高性能、多功能的DDS芯 ...… 查看全部问答> |
|
请问各位:基于PID算法的有刷直流电机PWM调速系统中对有刷直流电机调速用到的算法是模拟 PID控制原理还是增量式PID控制或者别的PID控制原理?能否将PID算法式子告诉我?谢谢各位了!!QQ:286410824… 查看全部问答> |
|
如题!IAR汇编程序中多次使用RSEG伪指令是什么意思?IAR汇编程序中多次使用RSEG伪指令是什么意思?IAR汇编程序中多次使用RSEG伪指令是什么意思?IAR汇编程序中多次使用RSEG伪指令是什么意思?… 查看全部问答> |
|
PC系统为2000,所用工具是EVC3.0 PDA为操作系统为WINCE,PPC2002,所用连接软件是ActiveSync,编译一个没有错误的程序时,在PDA上显示 Application *.EXE has performed an illegal operation and will be shut down .If the problem persists,con ...… 查看全部问答> |
|
听说STM32F103VCT6的Load是采用串口升级的,那我们设备与外通讯仅仅有USB接口,如果我们用IAP方式进行升级,万一出现意外擦除了,那岂不是很麻烦! 有人碰到这个问题吗?怎么解决呢? 谢谢了!… 查看全部问答> |




