STM32
直播中

熊本熊

8年用户 1396经验值
擅长:处理器/DSP
私信 关注
[问答]

求助,为什么stm8s的spi发送数据循环移位了2位?

stm8s003fp3,主模式,软件管理nss=1.msb先发,发送到74hc595。发送数据0101,0011,发现595显示的数据是0100,1101。移位寄存器移位了2位后,数据时钟才开始发出去了。void spi_init(){
  RCC_SPI_ON;//spi模块时钟开
  SPI_CPOL0;
  SPI_CPHA0;
  SPI_MSB;
  SPI_M;//主模式
  SPI_LINE_TWO;//双线全双工
  SPI_LINE_TXRX;
  SPI_DATACLK_DIV256;//数据时钟分频256
  SPI_NSS_ON;
  SPI_NSS1;
  SPI_TXE_IE;
//  IE_ON;
  SPI_ON;
}

使用查询标志法发数据。

回帖(1)

张瑜

2024-5-7 16:01:31
查询的标志错了,之前一直查询的txe标志,晚上看stm32说明书,txe并非发完置一,而是数据搬到移位寄存器就置一。改成查询BSY正常了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分