STM32F4第二课:GPIO
- 1. I/O管脚多路复用转换器和映射
I/O管脚通过一个multiplexer连接到板载外设/模块。同一时间每个I/O管脚仅允许一个外设的复用功能(AF)连接。这样,占用相同管脚的不同外设就不会起冲突。每个I/O管脚有16个(AF0-AF15)复用功能输入。
·复位以后,所有I/O管脚的复用功能设置为AF0;(复用功能需要开启?)
·外设的复用功能为AF1-AF13
·EVENTOUT为AF15
1.1System function
注意:失能一些jtag功能,能够节省管脚占用哦
所以,以后设置PCB的时候,就用SW调试接口了···
1.2GPIO口
1.3外设复用功能
ADC and DAC:GPIOx_MODER I/O mode 选择为analog
其他外设:①GPIOx_MODER 选择为 AF
②分别设置GPIOx_OTYPER, GPIOx_PUPDR 和GPIOx_OSPEEDER
③通过GPIOx_AFRL or GPIOx_AFRH选择对应的AFx
1.4事件驱动(略)
注:具体的 pin mapping 详见datasheet。Alternate function mapping
2.GPIO的寄存器简要描述
Stm32f4 的Reference manual(RM0090)
4个配置寄存器,
GPIOx_MODER:设置管脚为input, output, AF, analog四种模式
GPIOx_OTYPER: 设置管脚为开漏(open-drain)或推挽(pull-push)
关于推挽与开漏参看:http://www.cnblogs.com/kalo1111/articles/3309969.html
GPIOx_OSPEEDR:设置管脚的speed。
GPIOx_PUPDR:选择上拉 or 下拉
2个数据寄存器,
2个16到31位都是保留的,
GPIOx_IDR:只读的设置pin为 input
GPIOx_ODR:设置pin 为output。实现原子操作
1个位控制寄存器,
GPIOx_BSRR:实现原子级位控制,写0无效!0-15写1置1;16-31写1置0
1个锁定寄存器,
2个复用功能选择寄存器:
3.一些
Stm32f4: Each I/O port bit is freely programmable, however the I/O port registers have to be accessed as 32-bit words, half-words or bytes.
Stm32f1: 每个I/O端口位可以自由编程,然而必须按照32位字访问I/O端口寄存器(不允许半字或字节访问)。
posted on 2013-09-09 16:20 イケメンおっさん_汪汪 阅读(697) 评论(0) 收藏 举报
浙公网安备 33010602011771号