标签:知识点 0000 stm32f407zgt6 入门篇 地址 寄存器 APB 位带区 外设
内存的一些换算关系,做了解。
1GB=1073741824字节。
1KB=1024字节
1M=1024KB
1G=1024MB
AHB和APB
AHB的意思是系统总线。AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。
APB的意思是外围总线。APB主要用于低带宽的周边外设之间的连接。在APB里面唯一的主模块就是APB 桥。
地址值如何赋值
int *k=0x2489;//这里是个地址值。指针k指向0x2489的地址
*k = 1;//赋值
需要注意的是,当指针给没有指向的地址时,无法赋值。这种指针有个名字叫“悬浮指针”,是不能给它赋值的。
寄存器映射
寄存器映射说简单,其实就是给一块具有特定功能的内存单元起个名字的过程。
给存储器分配地址叫做存储器映射,再分配个地址叫做重映射。//(你没听太懂,嗯,我也没太懂,先把概念记住吧~)
怎么把你认为的地址转换为编译器也承认的地址?可以通过把数据定位指针,按着需要的位数选择是int还是什么其他类型。
*(unsigned int *)(0x40020800+0x14) &=~(0x01<<2);
ST为开发者提供了非常方便的开发库。到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。
外设位带区与外设位带别名区的地址转换:
AliasAddr = 0x4200 0000 +(A-0x4000 0000)*8*4+n*4
SRAM位带区与SRM位带别名区的地址转换A:
AliasAddr = 0x2200 0000 +(A-0x2000 0000)*8*4+n*4
A :表示我们要操作的那个位所在的寄存器的地址。
n:位号。
位带区的一个位在位带别名区会膨胀成四个字节。
外设和SRAM位带区的位带别名区的地址同意用一个公式表示
((addr&0xF000 0000)+0x0200 0000+((addr & 0x00FF FFFF)<<5)+(bitnum<<2))
addr:要操作的位所在寄存器的地址。
bitnum:位号,即在寄存器的第几位。
标签:知识点,0000,stm32f407zgt6,入门篇,地址,寄存器,APB,位带区,外设 来源: https://blog.csdn.net/qq_55695208/article/details/122838771
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。