stm32 - 如何打开 STM32F1 GPIO 引脚 PA2 上的 LED?
问题描述
如何使用标准注册表配置打开 PA2 GPIO (STM32F103C8T6) 上的 LED。
RCC-> APB2ENR |= (1<<2);
GPIOA->CRL |= (1<<9);
GPIOA->ODR |= (1<<3);
对我不起作用。你能建议我在哪里犯错吗?
解决方案
根据参考手册,GPIOA CRL 寄存器重置为 0x4444 4444(参见参考手册的第 9.2.1 节)。当您执行以下命令时:
GPIOA->CRL |= (1<<9);
您将 PA2 的 MODE 位设置为 10(输出模式,最大速度 2 MHz)。但由于初始寄存器初始化,CNF2 位为 01,为开漏配置。您应该使用以下内容初始化 PA2
GPIOA->CRL &= ~(0b0000<<8);
GPIOA->CRL |= (0b0010<<8);
这可确保 MODE2 和 CNF2 均已设置,因此引脚用作推挽配置的输出
推荐阅读
- guzzle6 - {guzzle-services} 如何将中间件与 GuzzleClient 客户端直接与原始 GuzzleHttp\Client 相对?
- android-studio - 如何在平板电脑上安装 Google Play Market - Android 模拟器?
- android - Android中的AES加密解密算法是否使用NoPadding?
- sql - SQL 查询,仅显示订单上的单个地址
- android - AlarmManager 警报在错误的时间响起
- react-native-popup-menu - 通过 array.forEach() 添加 Children 到
- html - Css输入HTML,为什么更新宽度时绝对位置会改变
- excel - VBA excel导出访问
- python - 如何更好地使用数据框中的值构造 SQL 语句?
- python - 如何在 python 中比使用 numpy.linalg.lstsq 更快地求解线性方程组?