你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
查看全部评分
oujisang 发表于 2017-5-22 17:09 SPI采集数据是以时钟的边沿采集数据,当你用表笔触碰时钟线后,造成了时钟脉冲的丢失,导致接收数据端收到 ...
oujisang 发表于 2017-5-22 17:33 不管三七二十一 直接多读几次就可以了 变量= hspi2.Instance->DR;
评分
查看全部评分
评分
查看全部评分
应该就是SCLK多了脉冲或少了脉冲而使数据帧对不起了。
请教,如何清掉SPI缓存里的数据?
我现在使在每次PC6下降沿重新初始化下SPI2,虽然不再出现这个问题了,但感觉多了太多的操作了。
HAL_SPI_DeInit(&hspi2); HAL_SPI_Init(&hspi2); 这两个函数也行,但是仍感觉操作太多了。
评分
查看全部评分
SPI接收时,应该是按sclk来8个或16个信号后,将移位寄存器的数据放到接收缓冲区,如果接收中断使能的话,会置位RXNE。
读DR,应该是读接收缓冲区吧?
疑惑,读DR,会产生哪些影响?
---------------------------------------------------------------------------
我的理解是有个计数器,计SCLK信号为8或16时,移位寄存器数据放到接收缓冲区,置位RXNE。
读DR,RXNE复位。但这个计数器是否也会跟着复位?
------------------------------------------------------------------------------
试了下,在PC6下降沿中断里,多加了几句读SPI的DR寄存器,没有效果。