一直不明白有STM32中AHB总线、APB2总线、APB1总线这些是是什么??
所谓地址映射,就是将芯片上的存储器 甚至I/O等资源与地址建立一一对应的关系。如果某地址
对应着某寄存器,我们就可以运用C语言的指针来寻址并修改这个地址上的内容,从而实现修改该寄存器的内容。
正是因为头文件中有了对于各种寄存器和I/O端口的地址映射,我们才可以在51单片机
程序中方便地使用P2^0 =0xFF; TMOD =0xFF等赋值句子对寄存器进行配置,从而控制单片机。
其实地址总线就是就是用来存放地址的,Cortex-M3的地址映射也是类似的,Cortex-M3有32根地址线,所以它的寻址空间大小为2^32
bit=4GB。(这里什么32跟地址线不需要去纠结了,只要知道配置成了4G的地址就行)
然后APB2总线就是指特定的一段地址,如:0x4001 0000—XXXX
具体的解释见\STM32 神舟\神舟III号\第5集 流水灯实验 \LED流水灯实验.pdf上的详解
拓展:
计算机硬件设备有传输数据和地址的线路,有的计算机数据线和地址线是公用的,就要采用分时处理的方式,有的计算机实际地址线路数少于集成电路的地址线路数,就要采用分段寻址的方式。
因为要共用,所以叫总线(bus)有数据总线和地址总线。
总线有控制总线,数据总线和地址总线,控制总线是发送控制信号的,地址总线是传送地址信号的,CPU要访问内存,必须首先在地址总线上给出内存的地址,所谓32位的地址总线是指根CPU相连的地址线有32条,每一条可以给出两个不同的符号(0和1)那么就可以访问2的32次方的空间的内存。数据总线是传输数据的,CPU要从内存或者缓存中读取数据,必须通过数据总线进行,32位的数据总线对应的是跟CPU相连的32根数据线。一条数据线传送一个二进制数,32位数据总线一次就可以传送2个字节的数据。
CPU中的位指的是CPU运算一次处理数据量的能力,32位CPU一次可以处理32位的数据,64位CPU一次可以处理64位的数据。
64位CPU不一定对应64位数据总线和地址总线,如果是32位的总线,可以采取分两次传送的措施,一般总线的位数大于等于CPU的位数
总结:学习单片机还得脚踏实地 打好基础 搞清楚
关键字:STM32 AHB总线 APB2总线 APB1总线
引用地址:
STM32中AHB总线、APB2总线、APB1总线这些是什么
推荐阅读最新更新时间:2024-03-16 16:17
GPRS无线终端测试系统电路设计
基于高性能单片机STM32($20.3400)和GPRS无线通信方案实现了对测试点CMMB网络覆盖情况的实时监测,并利用GPS接收器将测试终端的地理位子信息上传到服务器端,完成了对监测终端的精准定位。终端板卡供电方式采用太阳能供电系统,保障其在无电源和人员看守的情况下长期稳定的工作。最后通过综合测试,能实现所有要求的功能,完全满足本次设计的要求。 系统分为测试终端和服务器端,服务器端只需要一台性能良好的个人计算机,而测试终端主要由以下几个模块构成:射频前端模块模块、功率测量与存储模块、GPS接收器、太阳能供电模块、处理器模块及GPRS无线通信模块。各个模块主要是通过STM32($20.3400)微处理器的GPIO口连接与通信。
[单片机]
STM32开发 -- Keil使用(1)
一、keil主界面详解 打开一个工程文件,可以看到如下的界面: 下面我们就一一来介绍下。为了讲解专门找到一个keil汉化补丁。也是够够的了。 这里的汉化为了方便讲解,实际工作中建议还是用英文版本。 下载:keil 4汉化包 1、菜单栏 文件 其中需要注意的是 License Management,破解时需要在这里输入。 编辑 视图 工程 闪存 调试 外围设备(仿真) 工具 2、工具栏 文件操作 新建文件夹 Ctrl + N 打开文件 Ctrl + O 保存当前文件 Ctrl + S 保存所有文件 无 剪切 Ctrl + X 复制 Ctrl + C 粘贴 Ctrl + V
[单片机]
STM32的GPIO—快速IO的使用与讲解
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。 GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0';寄存器中的位置'0',则对它对应的位不起作用。 GPIOx_BSRR的低16位中每一位也对应端口x的每个位,对低16位中的某位置'1'则它对应的端口位被置'1';寄存器中的位置'0',则对它对应的端口不起作用。 简单地说
[单片机]
STM32下载出现no target connect
今天焊好了一个STM32F107VCT6的板子,一开始芯片可以下载进去程序。 然后过了5分钟,程序突然下载不进去了。然后就是一顿分析。当然分析的过程很复杂。 前前后后焊了3个芯片。STlink和Jlink都试过还是不能下载程序。 分析了一下,是芯片写保护了。 至于为什么写保护,是STlink供电不稳定, 当时引脚没有焊上去。供电断断续续的,芯片就被写保护了。解决办法在下面。 下两个图是我用STlink做的。 然后查资料将复位引脚拉低以后,然后在设备里面出现了 但是现在是下载不进去程序的。 然后继续看资料,将BOOT0引脚拉高使用ISP下载模式(就是直接下载就行了), 如果出现
[单片机]
STM32外部中断的使用
中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。 1 基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PR
[单片机]
STM32中断NVIC、EXTI外部中断
eg:STM32F407ZGT6 1:NVIC(嵌套向量中断控制器) 在参考手册的描述中(我就直接Copy了哈): 嵌套向量中断控制器 NVIC 包含以下特性: ● STM32F405xx/07xx 和 STM32F415xx/17xx 具有 82 个可屏蔽中断通道, STM32F42xxx和 STM32F43xxx 具有多达 86 个可屏蔽中断通道(不包括 Cortex™-M4F 的 16 根中 断线) ● 16 个可编程优先级( 使用了 4 位中断优先级) ● 低延迟异常和中断处理 ● 电源管理控制 ● 系统控制寄存器的实现 嵌套向量中断控制器 (NVIC) 和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚
[单片机]
STM32 的I2C 硬使用
/* 操作对象为一24C02 */ #include STM32Lib\\stm32f10x.h #include hal.h //#define AT24C01A //24C01A,I2C时序和往后的24C02一样 #define AT24C01 //24C01,I2C的时序和普通的有点不同 #define EEPROM_ADDR 0xA0 #define I2C_PAGESIZE 4 //24C01/01A页缓冲是4个 void I2C_Configuration(void) { I2C_InitTypeDef I2C_InitStructure; GPIO_InitTypeDef GPIO_InitStruct
[单片机]
基于STM32的实时心率检测仪设计
一、开发环境介绍 主控芯片: STM32F103ZET6 代码编程软件: keil5 心率检测模块: PulseSensor WIFI模块: ESP8266 --可选的。直接使用串口有线传输给上位机也可以。 上位机: C++(QT) 设计的。 支持PC机电脑、Android手机显示。 与上位机的传输协议: 支持串口传输、WIFI网络传输两种。 如果是PC就可以直接连接串口传输数据,如果不方便可以直接通过WIFI---TCP协议传输。 二、PulseSensor心率模块介绍 PulseSensor 是一款用于脉搏心率测量的光电反射式模拟传感器。 可以将其佩戴于手指、耳垂、手腕等处,通过杜邦线--导线将引脚连接到单片机,可将采集到
[单片机]