stm32 直接读写寄存器代码风格总结

简单的总结了一下stm32 寄存器读写代码风格,以备后用:

根据memory mapping 直接写寄存器代码风格:


#define GPIOA_BASE1 (uint32_t)0x40010800
#define GPIOA_CRH ((uint32_t*)(GPIOA_BASE1+0x04))


转换为指针之后,直接读写:

*GPIOA_CRH=0x000004B0; //A端口 //复用推挽输出 


结构体指针解决连续多个寄存器读写设置:



#define Usart1_BA
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32读写寄存器的操作相对简单。首先,需要定义一个指针来存储要读写寄存器地址。这个指针的类型通常是__IO uint16_t,表示它是一个易变的、无符号的、大小为16位的指针。然后,将这个指针指向要读写寄存器地址。最后,通过指针来进行读取或入操作。 例如,如果要读取Flash的数据,可以定义一个指针flashPtr,并将其指向Flash的读写地址。然后,通过*flashPtr来读取数据。 示例代码如下: ``` __IO uint16_t *flashPtr; // 定义一个指针来存储Flash读写地址 flashPtr = (__IO uint16_t *)0x08007C00; // 将指针指向数据地址 uint16_t Flash_Data = *flashPtr; // 通过指针读取数据 ``` 这样就可以通过指针来读取或寄存器的数据了。需要注意的是,具体的寄存器地址和数据类型可能会有所不同,需要根据具体的情况进行调整。 #### 引用[.reference_title] - *1* *3* [(超详细)STM32芯片Flash读写操作讲解和代码寄存器版本)](https://blog.csdn.net/luoxianfadde/article/details/129260271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【STM32】 相关寄存器总结](https://blog.csdn.net/Lushengshi/article/details/126213405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值