[STM8] ST8S003的SPI如何清除移位寄存器的残余数据,复位状态
2081|16
|
|
|
|
|
评论
@ipman :前辈,您说的复位SPI单元具体指的是什么?能否给说下
@1156807738 :寄存器是8位的,你不发完,是不会有中断来的,所以就不会从数据寄存器传输到移位寄存器,目前可以通过复位MCU的SPI单元实现吧,无需复位外设。或者用模拟SPI啊。
@ipman :目前我从机通过复位外设,重新初始化能解决,但是耗时严重,还不能用。所以很让人头痛
@ipman :您可能没太理解我的意思,我的主机的控制的CLK是固定的,比如主机发送14个CLK,只接收14个bit,也就导致了一些状态和移位寄存器的问题,我要做的是下次再发送时,把所有的状态和移位寄存器都恢复成正常的状态,不影响发送数据的准确性。
@1156807738 :这个不是缓冲寄存器,软件够不着的,SPI残留位一般都是通过连发CLK清除的,接收设备应该有处理机制
@ipman :不能多发,多发数据主机默认会报错
@1156807738 :发送8个0 清理下
有片选,即时拉高片选,你剩余的数据还卡在移位寄存器里,状态位肯定是有问题的,如果下次在发数据就错了
评分
|
|||||||
评论
前辈,我是再片选的外部中断里处理的,试了下,数据错乱了,哈哈。我在摸索下。谢谢
|
|
|
|