stm32之IO操作(基于库函数)
2017-10-31 20:24
232 查看
// stm32学习笔记
对于stm32f10x系列芯片的库函数,GPIO的操作函数在stm32f10x_gpio.h中声明,在stm32f10x_gpio.c 中完成定义。
基于库函数的stm32的IO口操作步骤:
1.使能IO口时钟,
函数接口:
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
参数列表:
RCC_APB2Periph:连接在APB2总线上的外设名称,如下图所示,GPIO位于APB2总线上,所以调用RCC_APB2PeriphClockCmd进行时钟使能;
NewState:ENANLE或者DISABLE
2、初始化IO口
函数接口:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
参数列表:
GPIOx:IO口的组别,如GPIOA、GPIOB;
GPIO_InitStruct :GPIO初始化结构体
需要完成该结构体的初始化(包括,输入输出模式、引脚号、读写速度’),并将该结构体地址传入GPIO_Init函数;
注意,该结构体要定义在时钟初始化之前的位置,不然会出现如下报错
error: #268: declaration may not appear after executable statement in block
3、调用IO口控制函数对IO口电平进行控制:
函数接口
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
对于stm32f10x系列芯片的库函数,GPIO的操作函数在stm32f10x_gpio.h中声明,在stm32f10x_gpio.c 中完成定义。
基于库函数的stm32的IO口操作步骤:
1.使能IO口时钟,
函数接口:
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
参数列表:
RCC_APB2Periph:连接在APB2总线上的外设名称,如下图所示,GPIO位于APB2总线上,所以调用RCC_APB2PeriphClockCmd进行时钟使能;
NewState:ENANLE或者DISABLE
2、初始化IO口
函数接口:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
参数列表:
GPIOx:IO口的组别,如GPIOA、GPIOB;
GPIO_InitStruct :GPIO初始化结构体
需要完成该结构体的初始化(包括,输入输出模式、引脚号、读写速度’),并将该结构体地址传入GPIO_Init函数;
注意,该结构体要定义在时钟初始化之前的位置,不然会出现如下报错
error: #268: declaration may not appear after executable statement in block
3、调用IO口控制函数对IO口电平进行控制:
函数接口
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
相关文章推荐
- STM32基于库函数版本的系统工作频率与CAN工作波特率设置
- C++ (IO操作小案列) 基于本地文本文档的读写
- 把STM32的JTAG下载引脚:JTDO、JTDI、JTCK 当成普通IO口进行操作
- stm32_010_stm32IO操作例子
- STM32IO口8位操作移位的方式
- 基于stm32固件库的的spi 对NRF905SE无线模块操作的API
- Java IO:基于字节的IO操作
- STM32:GPIO基础与对应管脚操作库函数
- STM32寄存器操作和库函数操作区别
- 对于stm32,初学者用库函数好还是直接对寄存器操作比较好
- 高级字符驱动程序操作之异步通知IO(实践篇)基于内核2.6.35-30
- 基于库函数STM32流水灯的实现
- 【stm32学习笔记之一】跑马灯实验(基于库函数)
- STM32 下的库函数和寄存器操作比较
- 基于stm32的RT-Thread操作系统+J-link V9虚拟串口调试操作
- 基于字节的IO操作
- STM32 下的库函数和寄存器操作比较
- 使用stm32的io模拟方式操作can控制器sja1000
- 像51一样操作STM32的IO(转)
- STM32的IO口基本操作