STM32不完全手册学习笔记--GPIO
来源:互联网 发布:js如何给div加边框 编辑:程序博客网 时间:2024/05/22 16:54
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<5; //使能PORTD时钟
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽输出
GPIOA->ODR|=1<<8; //PA8 输出
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR|=1<<2; //PD.2输出高
由上可以看出,对于GPIO操作,主要有以下几个步骤:
a、使能相应的GPIO时钟。
b、配置IO的功能,即配置CRH和CRL。
c、然后就是对GPIO初始化,操作。操作方式见如下两种
对整个GPIO口操作,需要用GPIOx_ODR寄存器,这个寄存器只能按16位操作。如果需要对某个位操作。则用到 IO 位段映射。下面简述两种方法
a、对GPIOx_ODR操作:
//PB0~7,作为数据线
#define DATAOUT(x ) GPIOB->ODR=(GPIOB->ODR&0xff00)|(x&0x00FF); //输出 这样子操作不影响ODR的高8位。
b、位段映射方法:将IO口每一位映射到ram空间中去。
#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //输出
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))
- STM32不完全手册学习笔记--GPIO
- STM32-GPIO学习笔记
- STM32学习笔记一一GPIO
- Stm32中文手册学习笔记
- stm32 学习笔记-gpio +j-link
- stm32学习笔记——GPIO
- STM32 Cortex M3 GPIO学习笔记
- stm32学习笔记(一) GPIO
- stm32学习笔记——GPIO
- STM32学习笔记之GPIO配置问题
- STM32学习笔记0.1--GPIO篇
- stm32学习笔记之GPIO配置
- STM32学习笔记2:再探GPIO
- STM32自学手册之GPIO
- STM32之GPIO笔记
- stm32 gpio 笔记!
- STM32+GPIO应用笔记
- STM32 GPIO应用笔记
- hibernate----inverse
- 重构36计(1)
- traceView使用
- C#判断程序调用的exe已结束
- 家庭条件不好的青少年如何才能成功
- STM32不完全手册学习笔记--GPIO
- winform通用分页控件
- BOM导入及更新
- IOS Block 并发
- 百度网盘邀请链接
- FUNCTION FND_CONCURRENT.WAIT_FOR_REQUEST
- 重构36计(2)
- 如何做好英文外贸B2C网站的优化
- 指针与引用的区别