单片机SPI口初始化设计

控制/MCU

1882人已加入

描述

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 }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分