历史上的今天
返回首页

历史上的今天

今天是:2025年03月12日(星期三)

正在发生

2019年03月12日 | STM32之AHB与APB总线

2019-03-12 来源:eefocus

AHB是高速总线,是一种系统总线,它主要负责连接处理器、DMA等一些内部接口。AHB 系统由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。 


APB是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。APB桥就是连接AHB和APB中间的玩意。 


APB1最大时钟频率为36MHz 

APB2最大时钟频率为72MHz


看下图 


  


在STM32F1中,不同的外设接在不同的APB总线上,以下是详细的分布:


#define RCC_APB1Periph_TIM2              ((uint32_t)0x00000001)

#define RCC_APB1Periph_TIM3              ((uint32_t)0x00000002)

#define RCC_APB1Periph_TIM4              ((uint32_t)0x00000004)

#define RCC_APB1Periph_TIM5              ((uint32_t)0x00000008)

#define RCC_APB1Periph_TIM6              ((uint32_t)0x00000010)

#define RCC_APB1Periph_TIM7              ((uint32_t)0x00000020)

#define RCC_APB1Periph_TIM12             ((uint32_t)0x00000040)

#define RCC_APB1Periph_TIM13             ((uint32_t)0x00000080)

#define RCC_APB1Periph_TIM14             ((uint32_t)0x00000100)

#define RCC_APB1Periph_WWDG              ((uint32_t)0x00000800)

#define RCC_APB1Periph_SPI2              ((uint32_t)0x00004000)

#define RCC_APB1Periph_SPI3              ((uint32_t)0x00008000)

#define RCC_APB1Periph_USART2            ((uint32_t)0x00020000)

#define RCC_APB1Periph_USART3            ((uint32_t)0x00040000)

#define RCC_APB1Periph_UART4             ((uint32_t)0x00080000)

#define RCC_APB1Periph_UART5             ((uint32_t)0x00100000)

#define RCC_APB1Periph_I2C1              ((uint32_t)0x00200000)

#define RCC_APB1Periph_I2C2              ((uint32_t)0x00400000)

#define RCC_APB1Periph_USB               ((uint32_t)0x00800000)

#define RCC_APB1Periph_CAN1              ((uint32_t)0x02000000)

#define RCC_APB1Periph_CAN2              ((uint32_t)0x04000000)

#define RCC_APB1Periph_BKP               ((uint32_t)0x08000000)

#define RCC_APB1Periph_PWR               ((uint32_t)0x10000000)

#define RCC_APB1Periph_DAC               ((uint32_t)0x20000000)

#define RCC_APB1Periph_CEC               ((uint32_t)0x40000000)


#define RCC_APB2Periph_AFIO              ((uint32_t)0x00000001)

#define RCC_APB2Periph_GPIOA             ((uint32_t)0x00000004)

#define RCC_APB2Periph_GPIOB             ((uint32_t)0x00000008)

#define RCC_APB2Periph_GPIOC             ((uint32_t)0x00000010)

#define RCC_APB2Periph_GPIOD             ((uint32_t)0x00000020)

#define RCC_APB2Periph_GPIOE             ((uint32_t)0x00000040)

#define RCC_APB2Periph_GPIOF             ((uint32_t)0x00000080)

#define RCC_APB2Periph_GPIOG             ((uint32_t)0x00000100)

#define RCC_APB2Periph_ADC1              ((uint32_t)0x00000200)

#define RCC_APB2Periph_ADC2              ((uint32_t)0x00000400)

#define RCC_APB2Periph_TIM1              ((uint32_t)0x00000800)

#define RCC_APB2Periph_SPI1              ((uint32_t)0x00001000)

#define RCC_APB2Periph_TIM8              ((uint32_t)0x00002000)

#define RCC_APB2Periph_USART1            ((uint32_t)0x00004000)

#define RCC_APB2Periph_ADC3              ((uint32_t)0x00008000)

#define RCC_APB2Periph_TIM15             ((uint32_t)0x00010000)

#define RCC_APB2Periph_TIM16             ((uint32_t)0x00020000)

#define RCC_APB2Periph_TIM17             ((uint32_t)0x00040000)

#define RCC_APB2Periph_TIM9              ((uint32_t)0x00080000)

#define RCC_APB2Periph_TIM10             ((uint32_t)0x00100000)

#define RCC_APB2Periph_TIM11             ((uint32_t)0x00200000)


当我们用到哪一个外设的时候,我们在这找到它对应的总线,然后使能时钟

推荐阅读

史海拾趣

CETC公司的发展小趣事

作为一家大型国有企业,CETC始终将社会责任放在首位。公司积极参与社会公益事业,捐款捐物支持灾区重建和贫困地区的教育事业。同时,CETC还注重环保和可持续发展,在生产过程中采用环保材料和工艺,降低对环境的影响。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛赞誉。

以上五个故事分别从科研突破、产业合作、海外市场布局、人才培养与团队建设以及社会责任等方面描述了CETC公司的发展过程。这些故事都是基于CETC在电子行业中的实际表现和公开资料进行的创作,旨在客观展现公司的发展历程和成就。当然,CETC的发展故事远不止这些,更多精彩的故事还需要我们进一步去发掘和了解。

南晶电子(DGNJDZ)公司的发展小趣事

南晶电子(DGNJDZ)成立于2011年,起初只是一家专注于半导体分立器件研发和生产的小型企业。创始人毛姬娜凭借其敏锐的市场洞察力和技术背景,带领团队攻克了一个又一个技术难关,逐渐在电子行业崭露头角。公司初期面临着资金短缺、技术瓶颈等重重困难,但毛姬娜和团队凭借坚韧不拔的精神,一步步走出了困境。

爱浦电子(AIPULNION)公司的发展小趣事

在产品质量得到保障的同时,爱浦电子也积极开展市场拓展和品牌建设工作。公司积极参加国内外电子展会和技术交流活动,与众多行业伙伴建立了紧密的合作关系。此外,爱浦电子还注重品牌形象的塑造,通过统一的对外标识和全新的VI企业形象,提升了公司整体形象。这些努力使得爱浦电子在市场上逐渐树立起了良好的口碑和品牌形象。

BALLUFF公司的发展小趣事

作为一家世界领先的传感器制造商,BALLUFF公司始终坚持全球化战略与本土化发展的结合。在全球60多个国家设有代表处,并在38个国家拥有销售、生产和开发的子公司。同时,公司在德国、美国、瑞典、巴西、匈牙利、中国和日本等地建立了自动化产业和能源产业生产基地。这种全球化布局使得BALLUFF能够更好地服务全球客户,满足不同地区的市场需求。同时,公司也注重本土化发展,通过深入了解当地市场和客户需求,不断推出符合当地市场需求的产品和服务。

这五个故事展示了BALLUFF公司在电子行业中的发展历程和取得的成就。从初创时期的机械修理厂到如今的全球传感器制造领军企业,BALLUFF凭借其技术创新、产品质量和市场拓展能力,不断在电子行业中取得突破和进展。同时,公司也积极适应市场变化,不断调整战略和业务模式,以适应全球化趋势和客户需求的变化。

Fischer Elektronik公司的发展小趣事

为了更好地服务全球客户,Fischer Elektronik积极实施国际化战略。公司在全球范围内建立了多个生产基地和销售网络,以确保能够快速响应市场需求并提供高质量的产品和服务。通过多年的努力,Fischer Elektronik已经成功进入了众多国际市场,并与众多知名企业建立了长期合作关系。这些合作不仅提升了公司的品牌知名度,也为其带来了更多的商业机会和发展空间。

Ferroperm公司的发展小趣事

在发展的过程中,Ferroperm公司不断进行技术创新和产品研发,推动产品的多样化发展。他们成功开发了一系列具有高性能和独特功能的电磁材料,如高性能铁氧体、NdFeB永磁体等。这些产品不仅满足了客户对电磁材料性能的高要求,还推动了相关行业的发展。同时,Ferroperm还不断拓展产品线,推出了变压器、电感器、滤波器等一系列电子产品,进一步巩固了其在电磁材料领域的领先地位。

问答坊 | AI 解惑

CD4046失锁

    选用CD4046用作倍频,将输入的频率50HZ倍频256倍用于控制AD采样,但是输出的频率老是跳变。而且后来调试时,我直接把输出脚和反馈脚短接,输出频率还是跳变。     当倍频256倍时,R1选择100K ,C1=470pF,R2不接,R3=1M,R4= ...…

查看全部问答>

通过以太网发送自定义的帧的问题

希望直接通过以太网发送自定义的帧 现在用muxSend函数的时候碰到一些问题 一是cookie只需要调用muxBind然后得到返回值就可以了? 二是对M_BLK结构不是很清楚, 是不是在调用这个函数的时候还涉及到netpool初始化操作呢? 在网上找了些例子,在 ...…

查看全部问答>

CE6 内存问题?new delete问题?

在程序中如果我不断的new一个内存空间然后再delete,连续的N次后会不会造成内存泄漏,我看过了每次新的一个NEW产生的地址都是在增加的那如果N次后不是超出总的地址长度了?不是很理解CE的这个现象? …

查看全部问答>

想设计一个类似于串口调试助手的软件

想设计一个类似于串口调试助手的软件,就是通过指令控制计算机的硬件例如串口,不知需要什么?听说需要API,不知哪位朋友能举个例子!QQ:530883031  谢谢!…

查看全部问答>

华为公司上海研究所招聘软件测试人员

职位要求: 1、电子信息相关专业,本科2年以上或硕士1年以上的工作经验; 2、具备扎实的计算机软件或通信基础知识,有着相关的软件项目开发或测试经验,或者自动化测试经验; 3、具备一定的软件工程知识,掌握基本软件开发、质量保证流程及相关 ...…

查看全部问答>

1138写的12864串行驱动

如果12864用并行驱动的话,很多I/O口都被占用,采用串行驱动的话就可节省好多I/O 口。请问哪位写过12864的串行驱动程序啊,能否上传一下?谢谢!…

查看全部问答>

STM32的通用定时器查询方式问题

我想用通用定时器延时微秒级别,但是我配置的寄存器始终有问题, 这是定时器初始化: RCC->APB1ENR|=1<<1;//TIM3时钟使能                    ...…

查看全部问答>

想DIY优盘

想DIY优盘,请大侠们帮帮忙,能告诉我主控的选择,主控和闪存的引脚功能,以及外围电路,在下感激不禁!!…

查看全部问答>

大家帮我看看我描述的元器件损坏这一段哪儿不对劲

分析图2-1ya、b、c所示的全波整流电路 图a                                     图b      &nb ...…

查看全部问答>

送给你们《高质量C++C 编程指南》,养成编程的好习惯是挺重要的呀

我花了3小时看完了,感觉受益匪浅,对以后的编程之路垫了垫基础,传上来与大家分享一下…

查看全部问答>