×
单片机 > 单片机程序设计 > 详情

单片机SPI口初始化设计

发布时间:2020-09-03 发布时间:
|

1 void SPIx_Init(void)

2 {

3 RCC-》APB2ENR|=1《《2; //PORTA时钟使能

4 RCC-》APB2ENR|=1《《12; //SPI1时钟使能

5

6 //这里只针对SPI口初始化

7 GPIOA-》CRL&=0X000FFFFF;

8 GPIOA-》CRL|=0XBBB00000;//PA5.6.7复用推挽输出

9 //GPIOA-》ODR|=0X7《《5; //PA5.6.7上拉,应该不起作用,因为此模式

10 SPI1-》CR1&=~(1《《6);//关闭SPI来配置某些位

11

12 SPI1-》CR1&=~(1《《15);//1:双线双向模式 0:单向双向模式

13 SPI1-》CR1&=~(1《《13);//1:启动CRC校验 0:关闭CRC校验 只能在SPE=0时改写,否则出错。只能在全双工模式使用

14 SPI1-》CR1|=0《《11;//1:16bit数据格式 0:8bit数据格式 只能在SPE=0时改写,否则出错。

15 SPI1-》CR1|=0《《10;//1:全双工模式 0:只接收模式

16 SPI1-》CR1|=1《《9; //1:启用软件从设备管理 0:禁止软件从设备管理 当为1时,NSS电平由SSI位决定

17 SPI1-》CR1|=1《《8;//

18 SPI1-》CR1|=0《《7; //1:先发送MSB 0:先发送LSB

19 SPI1-》CR1|=0《《3//5~3bit:分频系数 0~7 分频系数为Fpclk/2、4、8、16、32、64、128、256

20 SPI1-》CR1|=1《《2;//1:主设备 0:从设备

21 SPI1-》CR1|=1《《1; //CPOL 1:空闲时SCK为1 0:空闲时SCK=0

22 SPI1-》CR1|=1《《0; //CPHA 1:数据采样从第二个时间边沿开始 0:数据采样从第一个时钟边沿开始

23 SPI1-》CR1|=1《《6; //1:开启SPI 0:关闭SPI

24 }


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会