当前位置: 首页 > news >正文

嵌入式C语言寄存器操作

一、常用寄存器操作

/* 设置位 (置1)	*/
*pReg |= (1 << bit_position);/* 清除位 (置0) */
*pReg &= ~(1 << bit_position);/* 取反 */
*pReg ^= (1 << bit_position);

二、寄存器写操作

如下所示为配置Pc13引脚为输出模式的错误示例

/* 配置为通用输出 * 00:Input mode* 01:General purpose output mode* 10:Alternate function mode* 11:Analog mode(reset state)
*/
pReg = (uint32_t *)(0x48000800 + 0x00);
*pReg |= 0x01 << 26;

默认配置为为11,上述操作只修改了第二位,第一位未修改,导致配置错误,正确配置如下:

/* 配置为通用输出 */
pReg = (uint32_t *)(0x48000800 + 0x00);
*pReg &= ~(0x03 << 26);
*pReg |= 0x01 << 26;

上述配置仍存在一定的安全问题,在对寄存器进行操作时,我们一定要遵守:读->改->写的步骤:

/ 单次读-修改-写保证原子性
uint32_t temp = *pReg;
temp &= ~(0x03 << 26);     // 清除MODER13区域
temp |= 0x01 << 26;  // 设为输出模式
*pReg = temp;
http://icebutterfly214.com/news/10771/

相关文章:

  • 题解:CF1037E Trips
  • 2025 CSP-S 游记
  • java 基础语法一
  • CSP-S游记
  • csp2025 总结
  • 使用Stream API重构你的数据处理
  • 一个灵感:思维的断章
  • 通达信:引用函数 - Leone
  • 20231427田泽航第七周预习报告
  • Awesome Neovim - 精选Neovim插件大全
  • 游记 CSP-S2025
  • 解码LVGL样式
  • Edge---浏览器优化配置
  • 打造你自己的 Linux 备份命令:快速、高效、易用 【from claude.ai Haiku 4.5】
  • pdf下载网站
  • 2025 年 11 月氨糖软骨素厂家哪家好?剂型优化与人群适配双维度测评推荐
  • range()
  • 2025 年 11 月氨糖软骨素厂家哪家好?提纯工艺与长效养护双核心测评推荐
  • 基于嵌入式无人机UAV通信系统的实时最优资源分配算法matlab仿真
  • 构建现代Web应用:使用React框架打造单页面应用
  • 完全背包内外循环是否能对调?
  • 《密码系统设计》第九周预习
  • 回归 CSP-S2025游记
  • 有哪些好用的媒体播放器
  • THUSC 2024 游记
  • 2025年10月学习机品牌推荐:护眼大屏榜对比与品牌排名
  • 2025年11月福田欧曼重卡销量靠谱榜:生产厂家排名与全品系销量评测
  • 2025年福田欧曼重卡深度解析:权威推荐全场景价值标杆
  • 2025年11月数控铣床正规生产厂家推荐榜:口碑工厂对比
  • 2025 年 11 月 304 不锈钢机箱机柜,5052 铝机箱机柜,6061 铝机箱机柜厂家最新推荐,聚焦高端定制需求与全案交付能力!