STM32 - GPIO
2024-10-16 07:59:00
买了一个STM32F4的开发板,想把上面的东西重新学一下
快速过:
一、GPIO控制
void GPIO_DeInit(GPIO_TypeDef* GPIOx); //把某一个IO口恢复到默认值 /* 初始化和配置IO口函数**********************************************/
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); //初始化GPIO口函数
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); //初始化GPIO结构体函数
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //GPIO引脚配置锁定函数 /* GPIO读取或者写入函数**********************************************/
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //读取输入IO口数据的函数
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); //一次读取GPIO口16BIT数据函数
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //读取当前GPIO口输出数据函数
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx); //读取当前GPIO口16BIT输出数据函数
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //GPIO某引脚置一
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //GPIO某引脚置零
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal); //GPIO口写入状态
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal); //GPIO口写入16BIT状态
void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //GPIO口某位取反 /* GPIO映射配置函数 ****************************/
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);
以上是STM32F40x GPIO 口控制的全部函数
下面是一个GPIO初始化函数的例子:
//LED初始化函数
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_Struct;
GPIO_StructInit(&GPIO_Struct); //GPIO结构体初始化,恢复默认值
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //开启GPIO口时钟
GPIO_Struct.GPIO_Mode = GPIO_Mode_OUT; //设置为输出模式
GPIO_Struct.GPIO_OType = GPIO_OType_PP; //推挽模式
GPIO_Struct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //设置引脚6和引脚7
GPIO_Struct.GPIO_PuPd = GPIO_PuPd_NOPULL; //没有上拉和下拉
GPIO_Struct.GPIO_Speed = GPIO_High_Speed; //高速模式
GPIO_Init(GPIOA,&GPIO_Struct); //GPIO口初始化函数
GPIO_PinLockConfig(GPIOA,GPIO_Pin_6|GPIO_Pin_7); //锁定引脚配置
GPIO_SetBits(GPIOA,GPIO_Pin_6|GPIO_Pin_7); //A6 和A7 GPIO口置一
}
最新文章
- 数值分析之QR因子分解篇
- ASP.NET页面中去除VIEWSTATE视图状态乱码
- 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)
- SQLServer 维护脚本分享(09)相关文件读取
- Cwinux简介及用法简述
- 重学STM32----(二)
- 反转链表 --剑指offer
- 【转】python中的lambda函数
- IE8+等兼容、360调用webkit内核小记
- 使用GDAL图书馆RPC校正问题
- Maven搭建SpringMVC+Hibernate项目详解(转)
- css选择器的优先级别
- --@angularJS--一个最简单的指令demo
- 处理json数据的空数据为任意字符
- Cypher查询语言--Neo4j 入门 (一)
- Python模块的导入以及软件开发规范
- Netty实现的一个异步Socket代码
- pygame设置text和image共同显示
- python setattr
- pymongo CursorNotFound错误