STMIO口配置库函数寄存器位操作方式

Posted 喜闻乐见小逗逗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STMIO口配置库函数寄存器位操作方式相关的知识,希望对你有一定的参考价值。

库函数函数:

一个初始化函数:初始化一个或者多个IO口(同一组)的工作模式、输出类型、速度以及上下拉方式

1 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
2 typedef struct
3 {
4   uint32_t GPIO_Pin//指定要初始化的端口
5   GPIOMode_TypeDef GPIO_Mode;//端口模式
6   GPiospeed_TypeDef GPIO_Speed;//速度
7   GPIOOType_TypeDef GPIO_OType; //输出类型
8   GPIOPuPd_TypeDef GPIO_PuPd;//上拉或者下拉
9 }GPIO_InitTypeDef;
 0   GPIO_Init函数初始化样例:   
1  GPIO_InitTypeDef GPIO_InitStructure;
2 3 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟 4 5 //GPIOF9,F10初始化设置 6 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//LED0和LED1对应IO口 7 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式 8 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz 10 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 11 GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIOF9,F10

 两个读取输入电平函数:

  uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取某个GPIO的输入电平
  uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读取某组GPIO的输入电平

两个读取输出电平函数:

  uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取某个GPIO的输出电平
  uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取某组GPIO的输出电平

四个设置输出电平函数:

  void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);设置某个IO口输出高电平
  void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);设置某个IO口输出低电平

  下边两个不常用
  void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
  void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

 

库函数步骤:

使能IO口时钟,调用函数RCC_AHB1PeriphClockCmd();
  不同的外设调用的时钟使能函数可能不一样
初始化IO口模式,调用函数GPIO_Init();
操作IO口,输出高低电平。
     GPIO_SetBits();
     GPIO_ResetBits();

以上是关于STMIO口配置库函数寄存器位操作方式的主要内容,如果未能解决你的问题,请参考以下文章

聊一聊SCON串行口控制寄存器

嵌入式stm32学习方法

STM32系列单片机IO口模式设置

简述单片机串行口的工作方式

STM3216位IO口操作的一些教训

arduino IO口