你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
ts2000 发表于 2017-5-20 08:24 把SPI的通信线都接上上拉,同时加上滤波电容。能增强干扰能力。
无薪税绵 发表于 2017-5-20 10:10 楼主在使能SPI后, 有没有第一时间清除接收缓冲区中断标志?
查看全部评分
oujisang 发表于 2017-5-22 17:09 SPI采集数据是以时钟的边沿采集数据,当你用表笔触碰时钟线后,造成了时钟脉冲的丢失,导致接收数据端收到 ...
都有上拉的。当然实际使用未必会因为干扰造成这种结果。我是偶然发现SCLK上引入干扰后会造成这种接收数据持续错位的问题。
主要是想通过软件来解决干扰消失后依旧错位的问题。
有没有第一时间清除接收缓冲区中断标志?
用的HAL库,SPI初始化时有清寄存器。
在程序中是反复调用
HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
这个函数来实现中断接收的。这个函数里只有是能SPI接收中断及是能SPI,没有清中断标志。
评分
查看全部评分
评分
查看全部评分
应该就是SCLK多了脉冲或少了脉冲而使数据帧对不起了。
请教,如何清掉SPI缓存里的数据?
我现在使在每次PC6下降沿重新初始化下SPI2,虽然不再出现这个问题了,但感觉多了太多的操作了。
HAL_SPI_DeInit(&hspi2); HAL_SPI_Init(&hspi2); 这两个函数也行,但是仍感觉操作太多了。
评分
查看全部评分