码迷,mamicode.com
首页 > 其他好文 > 详细

【STM】IO口配置库函数、寄存器、位操作方式

时间:2016-03-05 21:52:39      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

库函数函数:

一个初始化函数:初始化一个或者多个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();

【STM】IO口配置库函数、寄存器、位操作方式

标签:

原文地址:http://www.cnblogs.com/xiedoudou/p/5245841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!