- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上图端口位设置/清除寄存器BSRR各位描述 该寄存器通过举例子可以很清楚了解它的使用方法。例如你要设置GPIOA的第1个端口值为1,那么你只需要往寄存器BSRR的低16位对应位写1即可: GPIOA-BSRR=11; 如果你要设置GPIOA的第1个端口值为0,你只需要往寄存器高16位对应为写1即可GPIOA-BSRR=1(16+1) 该寄存器往相应位写0是无影响的,所以我们要设置某些位,我们不用管其他位的值。BRR寄存器是端口位清除寄存器。该寄存器的作用跟BSRR的高16位雷同,这里就不做详细讲解。在STM32固件库中,通过BSRR和BRR寄存器设置GPIO端口输出是通过函数 GPIO_SetBits()和函数GPIO_ResetBits()来完成的。 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 在多数情况下,我们都是采用这两个函数来设置GPIO端口的输入和输出状态。比如我们要设置GPIOB.5输出1,那么方法为: GPIO_SetBits(GPIOB, GPIO_Pin_5); 反之如果要设置GPIOB.5输出位0,方法为: GPIO_ResetBits (GPIOB, GPIO_Pin_5); GPIO相关的函数我们先讲解到这里。虽然IO操作步骤很简单,这里我们还是做个概括性的总结,操作步骤为: 1) 使能IO口时钟。调用函数为RCC_APB2PeriphClockCmd()。 2) 初始化IO参数。调用函数GPIO_Init(); 3) 操作IO。操作IO的方法就是上面我们讲解的方法。 专题三 STM32简介 STM32的芯片结构 STM32的最小系统 电源系统 重要的AHB总线 如上图所示,AHB总线贯穿所有的外设,AHB经过桥接,由APB1、APB2控制着几乎所有的外设,希望记住21,APB2属于高速设备,而APB1则属于低速设备。 STM32的时钟系统 在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。从时钟频率来分可以分为高速时钟源和低速时钟源,在这5个中HIS,HSE以及PLL是高速时钟,LSI和LSE是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中HSE和LSE是外部时钟源,其他的是内部时钟源。下面我们看看STM32的5个时钟源,我们讲解顺序是按图中红圈标示的顺序: 1.HSI是高速内部时钟,RC振荡器,频率为8MHz。 2.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围4MHz~16MHz。我们的开发板接的是8M的晶振。 3.LSI是低速内部时钟,RC振荡器,频率为40kHz。独立看门狗的时钟源只能是LSI,同时LSI还可以作为RTC的时钟源。 4.LSE是低速外部时钟,接频率为32.768kHz的石英晶体。这个主要是RTC的时钟源。 5.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 A. MCO是STM32的一个时钟输出IO(PA8),它可以选择一个时钟信号输出,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。这个时钟可以用来给外部其他系统提供时钟源。 B. 这里是RTC时钟源,从图上可以看出,RTC的时钟源可以选择LSI,LSE,以及HSE的128分频。 C. 从图中可以看出C处USB的时钟是来自PLL时钟源。STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。 D. D处就是STM32的系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,当然你也可以超频,不过一般情况为了系统稳定性是没有必要冒风险去超频的。 E. 这里的E处是指其他所有外设了。从时钟图上可以看出,其他所有外设的时钟最终来源都是SYSCLK。SYSCLK通过AHB分频器分频后送给各模块使用。这些模块包括: ①、AHB总线、内核、内存和DMA使用的HCLK时钟。②、通过8分频后送给Cortex的系统定时器时钟,也就是systick了。③、直接送给Cortex的空闲运行时钟FCLK。④、送给APB1分频器。APB1分频器输出
文档评论(0)