STMCU小助手
发布时间:2021-11-25 15:00
STM32F0xx的IO口定义方式与STM32F10x类似,一组GPIO包含16个IO。每组GPIO同样用GPIO_TypeDef的结构指向对应的寄存器空间。
但是寄存器空间与STM32F10x的不同。
1. 使能GPIO的RCC RCC->AHBENR |= RCC_AHBPeriph_GPIOn 其中n的范围为A-F。 如果涉及到复用,与STM32F10x不同,这里用寄存器AFR[2]来设定复用。每个IO用4bit来选择复用功能,最多有8种复用。
例如GPIOA9,GPIOA10的AFR设定:
2. 配置GPIO 2.1 设置输出频率(OSPEEDR)
每2个位配置一个Pin。默认是2MHz。 0b00, 0b10: 2MHz 0b10: 10MHz 0b11: 50MHz
例如A9、A10都为50MHz:
2.2 配置输入输出(MODER) 每2个位配置一个Pin。 默认Input(除了SWD的A13,A14) 0b00: Input 0b01: Output 0b10: AF 0b11: Analog In/Out
例如GPIOA9,GPIOA10为AF:
2.3 配置输出模式(OTYPER)
每个bit表示输出模式, 0b0: PP模式; 0b1: OD模式。
例如:
2.4 配置上下拉模式(PUPDR)
每2个位表示上下拉模式。
例如:
3. 输出 输出电平通过寄存器BSRR(输出高电平和低电平)和BRR(输出低电平)实现,写入1表示对应操作,写入0无效。例如:
BSRR的低16位分别对应16个PIN的输出高电平操作,高16为对应输出低电平操作。 而BRR只有低16位有效,对应对应输出低电平操作。 8bit总线输出
通过寄存器IDR读出对应I/O口的状态。低16位有效。
|
ST TouchGFX 实操系列视频+如何选择正确的帧缓冲区策略
ST TouchGFX 实操系列视频++如何添加图像
ST TouchGFX 实操系列视频+如何进行屏幕转换
ST TouchGFX 实操系列视频+控件的淡入淡出
ST TouchGFX 实操系列视频+移动控件的三种方法
ST TouchGFX 实操系列视频+如何创建用户界面(UI)
ST TouchGFX 实操系列视频+如何安装TouchGFX Designer和STM32Cube软件环境
【经验分享】STM32F1 GPIO工作原理
【经验分享】STM32F0xx_DMA收发USART数据配置详细过程
【经验分享】STM32F1和STM32F4 区别
微信公众号
手机版