32的一些整理

配置低位高位寄存器
每个引脚四个位控制一个io口,MODE两位用来配置输入或输出和输出速度。CNF配置具体的输入或输出的哪一种状态(推挽,开漏输出,上拉下拉输入等等)
CRL低位为PX0-7
CRH高位为PX8-15
共需要842=64位
通过ODR寄存器配置上拉下拉

3.IDR寄存器:端口输入寄存器
16位 对应端口的输入电平

4.ODR寄存器:端口输出寄存器,也可以配置上拉下拉电阻

5.复位寄存器BSRR
6.BRR
7.LCKR

一个外设对应一个h和c文件,保存至HARDWARE文件中,记得把路径包含进来

每次配置端口都要先使能对应的时钟端

位操作运算

串口相关寄存器USART,状态、数据、波特率率寄存器SR DR BRR

抢占优先级和响应优先级 例如设置2 2的时候,抢占和响应优先级可以为0-3,值越小,优先级越高

·高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
·抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
·抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
·如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;

时钟:
PLL可以看做倍频器
晶振频率是晶体振荡器的固有频率,不能改变的.
时钟频率是单片机的工作CLK引脚的频率,可以直接由晶振产生,也可以用PLL电路对晶振频率进行倍频或分频来产生

串口设置设置为复用推挽输出(GPIO_Mode_AF_PP),其他的GPIO一般是通用推挽输(GPIO_Mode_Out_PP)

一些变量:
u8,u16,u32都是C语言数据bai类型,分别代du表8位,16位,32位长度的数据类型,一个字zhi节是8位,所以u8是1个字节,u16是2个字节,u32是4个字节。

可以在stm32库头文件中找到数据类型的声明

在stdint.h中:

typedef unsigned char uint8_t;

typedef unsigned short uint16_t;

typedef unsigned long uint32_t;

在stm32f10x.h 中:

typedef uint32_t u32;

typedef uint16_t u16;

typedef uint8_t u8;

你可能感兴趣的:(32)