- /*******************************************************************************
- ************************* CRL CRH 寄存器配置**********************************
- ****CNFx[1:0]:端口x配置位(x = 8…15)
- **
- ****在输入模式(MODE[1:0]=00) :
- ** 00:模拟输入模式
- ** 01:浮空输入模式(复位后的状态)
- ** 10:上拉/ 下拉输入模式
- ** 11:保留
- ****在输出模式(MODE[1:0]>00):
- **
- ** 00:通用推挽输出模式
- ** 01:通用开漏输出模式
- ** 10:复用功能推挽输出模式
- ** 11:复用功能开漏输出模式
- **
- ****MODEx[1:0]:端口x的模式位(x = 8…15)
- **
- ** 00:输入模式( 复位后的状态)
- ** 01:输出模式,最大速度10MHz
- ** 10:输出模式,最大速度2MHz
- ** 11:输出模式,最大速度50MHz
- *******************************************************************************/
- /*LCKK[15:0]:锁键
- 该位可随时读出,它只可通过锁键写入序列修改。
-
- 0:端口配置锁键位激活
- 1:端口配置锁键位被激活,下次系统复位前GPIOx_LCKR寄存器被锁住。
- *******************************************************************************
- 锁键的写入序列:
- 写1 -> 写0 -> 写1 -> 读0 -> 读1
- 最后一个读可省略,但可以用来确认锁键已被激活。
-
- 注:在操作锁键的写入序列时,不能改变LCK[15:0]的值。
- 操作锁键写入序列中的任何错误将不能激活锁键。
- */
- /*------------------------ General Purpose and Alternate Function IO ---------*/
- typedef struct
- {
- vu32 CRL; /* 配置寄存器*/
- vu32 CRH;
- vu32 IDR; /* 输入寄存器 只能以16位的数据读出*/
- vu32 ODR; /* 输出寄存器 只能以16位的数据写数据*/
- vu32 BSRR; /* 端口置高 可以对某个端口进行拉高操作*/
- vu32 BRR; /* 端口拉低 可以对某个端口进行拉低操作*/
- /* LCKK[15:0]:锁键
- 该位可随时读出,它只可通过锁键写入序列修改。
- 0:端口配置锁键位激活
- 1:端口配置锁键位被激活,下次系统复位前GPIOx_LCKR寄存器被锁住*/
-
- vu32 LCKR; /* 锁定端口的模式,每个锁定位锁定控制寄存器(CRL, CRH) 中相应的4个位*/
- } GPIO_TypeDef;
- 参考手册上都有的, 只是写到头文件里面, 下次就不用翻参考手册了
|