
1.其实位绑定并不需要我们去做绑定操作,他是本身就联系在一起的了,我们只需计算出他的地址就可以直接操作了。 2.系统只对一下两组地址做了位绑定,也就是只有在一下两组地址内的才可以进行位绑定操作: ------SRM区: 0x2000 0000 -- 0x200F FFFF ------片上外设区: 0x4000 0000 -- 0x400F FFFF 3.对应地址的计算办法: ------SRM区: 关联的地址=0x2200 0000 +( (A-0x2000 0000)*8 + n)*4 -------------解析: A:原来的地址 ---------------------*8:因为每个地址对应一个字节,一个字节有8位 ---------------------n: 代表在这个字节中的第几位 ---------------------*4:因为每一位对应一个字(不是字节),一个字是4个字节的,就是32位。也就是说原来地址中的每一位对应新地址中的32位。这样做的目的是因为32位的系统,一个指令周期就可以操作一个32位的数,这样比你拿原来的地址进行位的与或操作快。 ------片上外设区: 关联的地址=0x4200 0000 + ((A-0x4000 0000)*8 + n)*4 4.例子: ------u32 *PAI11=(u32*)(0x4200 0000 + ((0x4001 0808 - 0x4000 0000)*8 +11)*4) ------等同于: ------u32 *PAI11=(u32*)(0x4200 0000 + ((0x4001 0809 - 0x4000 0000)*8 +3)*4) ------然后就直接操作就可以了,只看最后一位,也就是: *PAI11 = 0 和 =2 、=4 ...都一样,对应位为0;;; *PAI11 = 1 和 =3....都一样,对应位为1。 5.例子,采用宏定义的方法处理: ![]() ———————————————— 版权声明:鱼入大海_ |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南