当前位置:文档之家› AJ-I STM 说明书

AJ-I STM 说明书

AJ-I STM 说明书
AJ-I STM 说明书

stm32时钟详细说明

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。RTC的时钟源通过RTCSEL[1:0]来选择。 STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。 另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。 系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、 4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用: ①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。 ②、通过8分频后送给Cortex的系统定时器时钟。 ③、直接送给Cortex的空闲运行时钟FCLK。 ④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。 ⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。

STM32时钟初始化函数SysInit详解

花了一天的时间,总算是了解了SystemInit()函数实现了哪些功能,初学STM32,,现记录如下(有理解错误的地方还请大侠指出):使用的是3.5的库,用的是STM32F107VC,开发环境RVMDK4.23 我已经定义了STM32F10X_CL,SYSCLK_FREQ_72MHz 函数调用顺序: startup_stm32f10x_cl.s(启动文件)→SystemInit() → SetSysClock () →SetSysClockTo72() 初始化时钟用到的RCC寄存器复位值: RCC_CR = 0x0000 xx83; RCC_CFGR = 0x0000 0000;RCC_CIR = 0x0000 0000; RCC_CFGR2 = 0x0000 0000; SystemInit() 在调用SetSysClock()之前RCC寄存器的值如下(都是一些与运算,或运算,在此就不赘述了): RCC->CR = 0x0000 0083; RCC->CIR = 0x00FF0000; RCC->CFGR2 = 0x00000000;至于这些寄存器都代表着什么意思,详见芯片资料RCC寄存器,该文重点不在此处;SetSysClock()函数如下: static void SetSysClock(void) { #ifdef SYSCLK_FREQ_HSE SetSysClockToHSE(); #elif defined SYSCLK_FREQ_24MHz SetSysClockTo24(); #elif defined SYSCLK_FREQ_36MHz SetSysClockTo36(); #elif defined SYSCLK_FREQ_48MHz SetSysClockTo48(); #elif defined SYSCLK_FREQ_56MHz SetSysClockTo56(); #elif defined SYSCLK_FREQ_72MHz//我的定义的是SYSCLK_FREQ_72MHz,所以调用SetSysClockTo72() SetSysClockTo72(); #endif } SetSysClockTo72()函数如下: static void SetSysClockTo72(void) { __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ /* Enable HSE */ RCC->CR |= ((uint32_t)RCC_CR_HSEON); /* Wait till HSE is ready and if Time out is reached exit */ do

stm32如何配置时钟

学习STM32笔记2 如何配置时钟 学习STM32笔记2 如何配置时钟 /************************************************************* 该程序目的是用于测试核心板回来后是否能正常工作。包括 两个按键、两个LED现实。按键为PC4、PC5,LED为PA0\PA1。LED为 低电平时点亮。按键为低电平时触发。 ************************************************************/ #i nclude "stm32f10x_lib.h" void RCC_Configuration(void);//设置系统主时钟 void GPIO_Configuration(void);//设置邋邋IO参数 void NVIC_Configuration(void);//设置中断表地址 void delay(void);//延时函数 int main(void) { #ifdef DEBUG debug(); #endifRCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); while (1) { delay(); //设置指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_0); //设置指定的数据端口位 delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_0); //清除指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_1); delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_1); delay(); /********************************************* 使用setbits 与resetbits 是比较简单,其实还是可以使用 其它函数。例如可以使用GPIO_WriteBit GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET); GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);对于好像流水灯呀这些一个整段IO,可以使用GPIO_Write(GPIOA, 0x1101); *********************************************/

05_STM32F4通用定时器详细讲解

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) 作用:1使能自动重载TIM3_ARR 2定时器的计数器递增或递减计数。 3 事件更新。 4 计数器使能 2 TIM 3 控制寄存器 2 (TIM3_CR2) 3 TIM3 从模式控制寄存器 (TIM3_SMCR) 4 TIM3 DMA/中断使能寄存器 (TIM3_DIER) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

STM32时钟系统与软件配置

STM32时钟系统与软件配置 在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法 如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法: 2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。 2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。 使用HSE时钟,程序设置时钟参数流程: 1、将RCC寄存器重新设置为默认值RCC_DeInit; 2、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON); 3、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp(); 4、设置AHB时钟RCC_HCLKConfig; 5、设置高速AHB时钟RCC_PCLK2Config; 6、设置低速速AHB时钟RCC_PCLK1Config;

程序烧写说明

程序烧写说明 OK300C根据用户选配单片机类型不同烧写程序的方式也有所不同,主要分三类:STC单片机用户烧写方法,并口ISP下载器烧写方法,USB接口ISP下载器烧写方法。下面将详细介绍烧写程序的方法。 一、 STC单片机用户烧写方法 启动下载软件,首次设置时只需注意芯片的选择,在左上角下拉框中选择STC89C52RC,一般的台式机大多只有一个串口,所以COM栏就选择COM1,如果使用别的串口那就选择相应的串口号,其它全部使用默认,不明白时最好不要乱改,不然可能会把芯片锁死,以后就用不了了。总体设置如下图: 点击软件界面上的Open File 打开对话框,将*.hex或者*.bin文件选择,选择好后点击Open 。 要先把实验板上的电源关掉,因为STC的单片机内有引导码,在上电的时候会与计

算机自动通讯,检测是否要执行下载命令,所以要等点完下载命令后再给单片机上电。然后点击如图中的Download/下载钮, 接着按下实验板上电源给单片机上电 若出现上述图片,则说明已经给单片机成功下载了程序,并且已经加密。 二、 并口ISP下载器烧写方法 将ISP下载器插在主板的ISP口处。确认板上JP1三个跳线都断开,连接好电源线,打开电源。打开下载软件MuCodeISP,以下载AT89S52为例,选择89S5X,选择89s52,如下图 然后加载要烧录的程序 点击File菜单下的openflash,出现如下对话框

选择要烧录的文件,这里是*.hex文件 烧录,点击下图中的Program按钮就可以把程序下载到单片机 A VR单片机的程序烧录过程也是一样的。不过烧录51和A VR单片机切换时,要注意不要忘记进行51/avr单片机选择键的操作。 三、 USB接口ISP下载器烧写方法 选配USB接口isp下载器的用户,使用的烧写软件是A VRSTUDIO。首先要安装好该软件,安装方法和安装普通软件一样。 可以用AVR Studio的4.13或更高版本控制STK500/AVRISP,选择STK500 or AVRISP和Auto 或者具体的COM?端口进行联机,点击avr studio主窗口中的图标前面标有Con的那个图标,然后按下图选择即可进行STK500或者JTAG的联机,由于avr studio会记忆用户使用的设备是STK500ISP还是JTAG并且同时会记忆用户使用的COM号,如果下次和上次使用的是相同的设备并且没有更换COM口,那么下次使用的时候直接点击右边标有AVR的那个图标就可以快速进入联机状态;如果下次和上次使用了不同的设备或不同的COM口请使用Con图标进行联机。 连接STK500ISP:

STM32滴答时钟

关于STM32 滴答时钟 相信不论是初学者还是高手,都会被STM32的滴答时钟所吸引。STM32有很多计数器,也有很多计数器中断。当别人还在用计数器做定时扫描的时候,我们就默默的开始了滴答时钟做扫描了。让他们去任意的浪费资源吧,我们节约资源,把计数器发挥更大的作用。 Systick定时器属于cortex内核部件,在芯片介绍的datasheet中没有提到过,可以参考 《CortexM3权威指南》或《STM32xxx-Cortex编程手册》。 首先来看Systick的时钟来源,如图一。可以看出在STM32中Systick以HCLK(AHB 时钟)或HCLK/8作为运行时钟。 图1 另外要注意Systick是一个24位的定时器,即一次最多可以计数224个时钟脉冲,这个脉冲计数值被保存到当前计数值寄存器STK_VAL中,这个计数器只能向下计数,每接收到一个时钟脉冲STK_VAL的值就向下减1,直至0,当STK_VAL的值被减至0时,由硬件自动把重载寄存器STK_LOAD中保存的数据加载到STK_VAL,意思就是它会自动重装。当STK_VAL 的值被倒计至0时,触发中断,就可以在中断服务函数中处理定时事件了。 要让Systick正常工作,必须要对Systick进行配置。它的配置很简单,只有三个控制位和一个标志位,都位于寄存器STK_CRL中,见图二。

图二 ENABLE: 为Systick timer的使能位,此位为1的时候开始计数,为0则关闭Systick timer。 TICKINT: 为中断触发使能位,此位为1的时候并且STK_VAL倒计至0的时候会触发Systick 中断,此位为0的时候不触发中断。 CLKSOURCE: 为Systick的时钟选择位,此位为1的时候Systick的时钟为AHB时钟,此位为0 的时候Systick的时钟为AHB/8(AHB的8分频)。 COUNTFLAG: 为Systick的标志位,当STK_VAL倒计至0,此标志位会被置1。 现在我们不会再为滴答时钟而感到迷惑了吧! 下面将详细描述如何去设置计数器,我们在很多地方看到这样一个函数: SysTick_Config(SystemCoreClock / 1000) 配置为1ms中断一次 SysTick_Config(SystemCoreClock / 100000) 配置为10us中断一次 SysTick_Config(SystemCoreClock / 1000000) 配置为10us中断一次 我们将细说一下,SystemCoreClock/100000 为什么是10us 我们从图1时钟数可以看出Systick的时钟和AHB有关,从图2中了解到滴答时钟可设置,结合两处就能看明白。若不去设置,系统默认为AHB时钟,即72MHz。 系统文件中可查找出以下描述: /************************************************************************** ***** * Clock Definitions *************************************************************************** ****/ #ifdef SYSCLK_FREQ_HSE uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_24MHz uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_36MHz uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System

软件烧录说明(new)

软件烧录说明 前期准备: 1.将串口线连接至烧写板,(接口接烧写板上J2插口处,串口线白线靠近JP2插口方向) 2.如PC无端口,则用端口转USB线连接串口线与PC. 3.拆机找到烧录插槽.用软排线连接烧写板与机器烧录插口 烧录步骤: 1.建立虚拟服务器 1.1 解压tftpd3 2.rar,将tftpd32文件夹放在D盘根目录下. 1.2 运行tftpd32文件夹下的tftpd32子文件夹中的tftpd3 2.exe.此时本电脑即为一 个虚拟的临时服务器.电脑主机IP地址即为服务器IP地址.

2.将2个烧录文件*注1放入服务器*注2中 (*注1:烧录文件一般命名方式为N_uImage_DM365_4.5.2和W_ramdisk_dm 365_HW_2 B12121112_9715.gz,红色字体部分根据不同机型变化) (*注2:放在tftpd32文件夹下的tftpboot文件夹下) 3.运行烧录软件(如tera temp pro) 4.在”Hit any key to stop autoboot”命令倒数结束之前按任意键盘键,进入烧录状态.如 下图: 5.指向服务器地址.输入下方两行命令: set serverip 192.168.1.34回车(其中192.168.1.34是步骤1中的服务器IP地址) savee回车

6.打开内核与文件系统烧写文档(命名方式为” V8.9 7.4.5内核和文件系统烧写文 档.txt”) 7.复制文档中的第一条命令,并在烧录工具界面中点右键,再回车确认.即可运行该行命 令.出现”really scrub this NAND flash?提示时,按键盘[Y]再回车确认. 8.拷贝资料时会出现”#######”表示成功拷贝,若出现”T T T T T T T T T T T”表示 网络不通.请确认是否有防火墙阻拦tftpd32程序,或机器与tftpd32程序所在电脑主机是否连通..

图文详解stm32时钟树

对于广大初次接触STM32的读者朋友(甚至是初次接触ARM器件的读者朋友)来说,在熟悉了开发环境的使用之后,往往“栽倒”在同一个问题上。这问题有个关键字叫:时钟树。 众所周知,微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端8位单片机诸如51,AVR,PIC等单片机,其也具备自身的一个时钟树系统,但其中的绝大部分是不受用户控制的,亦即在单片机上电后,时钟树就固定在某种不可更改的状态(假设单片机处于正常工作的状态)。比如51单片机使用典型的12MHz晶振作为时钟源,则外设如IO口、定时器、串口等设备的驱动时钟速率便已经是固定的,用户无法将此时钟速率更改,除非更换晶振。 而STM32微控制器的时钟树则是可配置的,其时钟输入源与最终达到外设处的时钟速率不再有固定的关系,本文将来详细解析STM32微控制器的时钟树。

图1是STM32微控制器的时钟树,表1是图中各个标号所表示的部件。 标号图1标号释义 1 内部低速振荡器(LSI,40Khz) 2 外部低速振荡器(LSE,32.768Khz) 3 外部高速振荡器(HSE,3-25MHz) 4 内部高速振荡器(HIS,8MHz) 5 PLL输入选择位 6 RTC时钟选择位 7 PLL1分频数寄存器 8 PLL1倍频寄存器 9 系统时钟选择位 10 USB分频寄存器 11 AHB分频寄存器 12 APB1分频寄存器 13 AHB总线 14 APB1外设总线 15 APB2分频寄存器 16 APB2外设总线 17 ADC预分频寄存器 18 ADC外设 19 PLL2分频数寄存器 20 PLL2倍频寄存器 21 PLL时钟源选择寄存器 22 独立看门狗设备 23 RTC设备 图1 STM32的时钟树 在认识这颗时钟树之前,首先要明确“主干”和最终的“分支”。假设使用外部8MHz 晶振作为STM32的时钟输入源(这也是最常见的一种做法),则这个8MHz便是“主干”,而“分支”很显然是最终的外部设备比如通用输入输出设备(GPIO)。这样可以轻易找出第一条时钟的“脉络”:3——5——7——21——8——9——11——13 对此条时钟路径做如下解析: 对于3,首先是外部的3-25MHz(前文已假设为8MHz)输入; 对于5,通过PLL选择位预先选择后续PLL分支的输入时钟(假设选择外部晶振); 对于7,设置外部晶振的分频数(假设1分频); 对于21,选择PLL倍频的时钟源(假设选择经过分频后的外部晶振时钟); 对于8,设置PLL倍频数(假设9倍频); 对于9,选择系统时钟源(假设选择经过PLL倍频所输出的时钟); 对于11,设置AHB总线分频数(假设1分频); 对于13,时钟到达AHB总线; 在上一章节中所介绍的GPIO外设属于APB2设备,即GPIO的时钟来源于APB2总线,同样在图1中也可以寻获GPIO外设的时钟轨迹:

烧录软件使用说明(简体)

FM8P5X WRITER TECHNOLOGY FM8P5X 8-Bit Micro-Controller Writer ver: 2.17F 使用者手册

FM8P5X WRITER TECHNOLOGY 目录 一、前言 (4) 二、系统需求 (4) 1. 计算机系统: (4) 1.1. Windows操作系统: (4) 1.2. 计算机必须符合下列最小需求: (4) 2. 硬设备 (4) 3. 软件 (4) 三、安装 (5) 1. 硬件 (5) 2. 软件 (5) 3. 驱动程序 (5) 四、软件介绍 (5) 1. 档案列 (6) 1.1. File (6) 1.1.1. Open(开启档案) (6) 1.1.2. Save(储存档案) (8) 1.1.3. Save as(另存档案) (9) 1.1.4. Exit(离开) (10) 1.2. Code (11) 1.2.1. Verify (Compare buffer and chip data) (11) 1.3. Tools (14) 1.3.1. Increase number (14) 1.3.2. DownLoad code to EEPROM (17) 1.3.3. Verify Code form EEPROM (19) 1.3.4. Read Code form EEPROM (21) 1.3.5. Read CheckSum in EEPROM (22) 1.3.6. Read Firmware’s Version (23) 1.3.7. Blank check in chip (23) 1.3.8. Read Checksum in chip (25) 1.3.9. Write to chip (26) 1.3.10. Self Test Setting (29) 1.3.11. Batch (30) 1.4. Setting (30) 1.4.1. Connect Interface (31)

液晶显示器编程器的连接烧录说明

山东华兴专业液晶编程器 EP1130B使用说明书 + 高速USB读写24/25系列芯片 支持大屏幕高清方案 支持Mstar最新方案 支持卫星接收机读写 串口输出 1:GND 2:RTD 3:TXD 4:NC 总线I2C输出 1:GND 2:SDA 3:SLC 4:NC 烧录输出 跳帽向上为24/25 跳帽向下为串口烧录 跳帽要在切换开关在中间档才起作用USB输入 VGA输入信号

第一章:EP1130B集合版使用说明1:首先必须安装的3个软件 1:打开光盘,双击进行安装,如图: 安装完毕后在桌面会有操作软件的图标.同时也把USB驱动安装在C盘的文件夹里.(路径:C:\WINDOWS\system32\drivers)或者指定C:\EP1130B驱动

2:再安装PORT95NT(默认路径)和GProbe4.5.0.7(安装提 示点是,到最后安装完毕).然后重启电脑. 第二章:开关对应软件及驱动 3:开关对应软件图 一:(1)RTD方案开关对应软件图: (2)RTD方案驱动安装说明: 将EP1130B开关设置好.如上图:插上USB线连上电脑.电脑右下角会提示找到新硬件.如图: 注意:如果带电拨动方案开关时最好必须重新拔插一次USB。

设备管理器会显示有EP1130的驱动.

二(1).24/25系列、华亚微方案开关对应软件图: (2);24/25系列、华亚微方案USB驱动安装,开关设置如上图: 将EP1130B开关设置好.如上图:重新插上USB线连上电脑.电脑右下角会提示找到新硬件.如图: 需要注意跳帽

STM32 时钟详解及范例

一、综述: 1、时钟源 在STM32 中,一共有5 个时钟源,分别是HSI 、HSE 、LSI 、LSE 、PLL 。 ①HSI 是高速内部时钟,RC 振荡器,频率为8MHz ; ②HSE 是高速外部时钟,可接石英/ 陶瓷谐振器,或者接外部时钟源,频率范围是4MHz –16MHz ; ③LSI 是低速内部时钟,RC 振荡器,频率为40KHz ; ④LSE 是低速外部时钟,接频率为32.768KHz的石英晶体; ⑤PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL 的输入可以接HSI/2 、HSE 或者HSE/2 。PLL倍频可选择为2– 16 倍,但是其输出频率最大不得超过72MHz 。 其中,40kHz 的LSI 供独立看门狗IWDG 使用,另外它还可以被选择为实时时钟RTC 的时钟源。另外,实时时钟RTC 的时钟源还可以选择LSE ,或者是HSE 的128 分频。 STM32 中有一个全速功能的USB 模块,其串行接口引擎需要一个频率为48MHz 的时钟源。该时钟源只能从PLL 端获取,可以选择为 1.5 分频或者1分频,也就是,当需使用到USB 模块时,PLL 必须使能,并且时钟配置为48MHz 或72MHz 。 另外STM32 还可以选择一个时钟信号输出到MCO 脚(PA.8) 上,可以选择为PLL 输出的2分频、HSI 、HSE 或者系统时钟。 系统时钟SYSCLK ,它是提供STM32 中绝大部分部件工作的时钟源。系统时钟可以选择为PLL 输出、HSI 、HSE 。系系统时钟最大频率为72MHz ,它通过AHB 分频器分频后送给各个模块使用,AHB 分频器可以选择 1 、2 、4 、8 、16 、64 、128 、256 、512 分频,AHB分频器输出的时钟送给5大模块使用: ①送给AHB 总线、内核、内存和DMA 使用的HCLK 时钟; ②通过8分频后送给Cortex 的系统定时器时钟STCLK; ③直接送给Cortex 的空闲运行时钟FCLK ; ④送给APB1 分频器。APB1 分频器可以选择1 、2 、4 、8 、16 分频,其输出一路供APB1 外设使用(PCLK1 ,最大频率36MHz ),另一路送给定时器(Timer)2 、3 、4 倍频器使用。该倍频器根据PCLK1的分频值自动选择1或者2倍频,时钟输出供定时器2、3、4使用。 ⑤送给APB2 分频器。APB2 分频器可以选择1 、2 、4 、8 、16 分频,其输出一路供APB2 外设使用(PCLK2 ,最大频率72MHz ),另外一路送给定时器(Timer)1 倍频使用。该倍频器根据PCLK2的分频值自动选择1 或2 倍频,时钟输出供定时器1使用。另外APB2 分频器还有一路输出供ADC 分频器使用,分频后送给ADC 模块使用。ADC 分频器可选择为 2 、4 、6 、8 分频。 需要注意的是定时器的倍频器,当APB 的分频为1 时,它的倍频值为1 ,否则它的倍频值就为2 。file:///C:/DOCUME~1/LU/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg 2、APB1和APB2连接的模块 ①连接在APB1( 低速外设)上的设备有:电源接口、备份接口、CAN 、USB 、I2C1 、I2C2 、UART2 、UART3 、SPI2 、窗口看门狗、Timer2 、Timer3 、Timer4 。注意USB 模块虽然需要一个单独的48MHz 的时钟信号,但是它应该不是供USB 模块工作的时钟,而只是提供给串行接口引擎(SIE) 使用的时钟。USB 模块的工作时钟应该是由APB1 提供的。 ②连接在APB2 (高速外设)上的设备有:UART1 、SPI1 、Timer1 、ADC1 、ADC2 、GPIOx(PA~PE) 、第二功能IO 口。 file:///C:/DOCUME~1/LU/LOCALS~1/Temp/msohtml1/01/clip_image004.jpg 二、寄存器介绍: typedefstruct { __IO uint32_t CR;

STM32时钟简述教学文稿

在STM32F4中,有5个重要的时钟源,为 HSI、 HSE、 LSI、 LSE、 PLL。其中 PLL 实际是分为两个时钟源,分别为主 PLL 和专用 PLL。从时钟频率来分可以分为高速时钟源和低速时钟源,在这 5 个中 HSI, HSE 以及 PLL 是高速时钟, LSI 和 LSE 是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE 和LSE 是外部时钟源,其他的是内部时钟源。下面我们看看 STM32F4 的这 5 个时钟源,我们讲解顺序是按图中红圈标示的顺序: ①、LSI 是低速内部时钟,RC 振荡器,频率为32kHz 左右。供独立看门狗和自动唤醒单元使用。 ②、LSE 是低速外部时钟,接频率为32.768kHz 的石英晶体。这个主要是RTC 的时钟源。 ③、HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。核心板接的是8M 的晶振。HSE 也可以直接做为系统时钟或者PLL 输入。 ④、HSI 是高速内部时钟,RC 振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。 ⑤、PLL 为锁相环倍频输出。STM32F4 有两个PLL:

1)主PLL(PLL)由HSE 或者HSI 提供时钟信号,并具有两个不同的输出时钟。第一个输出PLLP 用于生成高速的系统时钟(最高168MHz) 第二个输出PLLQ 用于生成USB OTG FS 的时钟(48MHz),随机数发生器的时钟和SDIO时钟。 2)专用PLL(PLLI2S)用于生成精确时钟,从而在I2S 接口实现高品质音频性能。

烧写软件说明书

烧写软件使用说明 本实验板使用的STC89C52RC单片机具有ISP功能,可通过串口把程序代码烧进单片机内部的FLASH程序存储器内,烧后可全速运行程序,以检查代码的正确性。 第一步:检查实验板所有开关处于打开状态,即全部弹起。 第二步:把S_COM(串口电平转换区域)开关按下,选择USB转URAT功能。 第三步:把USB线插在PC和实验板上。 第四步:检查虚拟串口号。 我的电脑――右击――选择――管理――设备管理――展开右边的端口-记下USB虚拟的串口号。例如下图中的COM6 第五步:找到STC-ISP文件夹,双击STC_ISP_V483.exe,打开烧写软件

1、选择你使用的单片机型号,实验板上的型号为STC89C52RC 2、打开你要烧写的程序代码,例如:TEST.HEX 3、选择PC连接实验板的串行口,即第四步记下的串行口号。 4、选择其它选项,如图。 5、点击Download/下载按钮, 6、当信息提示框出现:“正在尝试与MCU握手连接…”时,按下实验板电源开关。 7、烧写自动完成,程序开始运行。 注意:下次烧写时,仍然要先关闭电源,重复以上步骤。 如烧写不成功,请先检查s_com按钮是否按下。如已按下则关闭实验板电源,拔下USB 线。等待一分钟,然后再插上USB线。重复1-6步骤。

串口调试助手使用说明 串口调试助手是一款运行在PC机上并通过PC的串口发送和接收数据的软件。我们经常把PC的串口和单片机的串口连接,并用此软件来调试单片机的串口程序,故称串口调试助手。 第一步:找到“串口调试助手”文件夹,双击“sscom32.exe”运行程序 第二步:选择串口,此时要关闭所有使用该串口的应用程序,例如烧写软件。 第三步:设置串口参数。例如:波特率等。 第四步:选择HEX发送,HEX显示 第五步:打开串口 第六步:在字符串输入框中输入要发送的字符,按“发送”按钮发送给单片机。单片机发送过来的字符,显示在上部的信息窗中。 注意:使用完毕后记得关闭串口,否则可能引起其它软件工作不正常。

超透彻的STM32讲解资料——RTC时钟

这部分的内容实现的功能是将时间传输到上位机。 第一:串口的配置,前面已经详细的讲过,这里不再讲解。 第二:中断的配置,由于我们需要时间每秒自加一次,一次需要用到中断,在中断服务程序中实现秒的自加,前面也已讲过中断的配置,这里就不详细讲解,只给出代码 /* * 函数名:NVIC_Configuration * 描述:配置RTC秒中断的主中断优先级为1,次优先级为0 * 输入:无 * 输出:无 * 调用:外部调用 */ void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /*设置先占优先级1位,从占优先级3位*/ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /*选择RTC的IRQ通道*/ NVIC_InitStructure.NVIC_IRQChannel =RTC_IRQn; /*设置中断先占优先级为1*/ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1; /*设置中断从占优先级为1*/ NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; /*使能RTC的IRQ通道*/ NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE; NVIC_Init(&NVIC_InitStructure); }

第三:对于RTC的使用,首先我们要判断是否是第一次使用RTC,如果是第一次使用那么肯定要设置时间的初始值以及对RTC进行相应的配置,而如果不是第一次使用,那么我们就无需再设置时间的初始值以及对RTC进行相应的配置,只需让RTC计数器继续计数就可以了。那么我们如何才能判断RTC是否为第一次使用呢?STM32中有一个后备寄存器,寄存器中的值不会因为掉电而改变,既然如此那我们肯定会这样想,当我第一次使用RTC时,往后备寄存器中写入一个值,下次再使用RTC时,我只要判断后备寄存器中的值是否为我第一次用RTC时写入的值,如果相等,说明我以前已经用过RTC了,现在我无需再对RTC进行配置了,因为第一次都配置好了(RTC和后备寄存器一样,RTC寄存器中设置的值不会因为掉电而改变),但要注意的是RTC的允许中断这一位在每次复位后会回到默认值,所以每次复位后我们都要再次设置允许RTC中断。下面我们就看看RTC的配置程序: /* * 函数名:RTC_Configuration * 描述:配置RTC * 输入:无 * 输出:无 * 调用:外部调用 */ void RTC_Configuration(void) { /* 使能PWR和BKP时钟*/ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); /*取消后备区域的写保护,因为后备寄存器中放的是重要的数据,默认是不允许往里面写入值的*/ PWR_BackupAccessCmd(ENABLE); /* 将后背寄存器的寄存器值设为默认值*/ BKP_DeInit(); /* 打开外部低速晶振,RTC可以选择的时钟源是外部和内部低速晶振及外部高速晶振,这里我们选择外部低速晶振32768HZ */

单片机烧写程序说明

Step 1:Keil软件的安装 1.选中文件夹中的C51V900安装程序并打开,如图: 2.在安装对话框里一直选择Next,直到Finish完成Keil的安装。 Step 2: 安装USB转串口线的驱动程序的安装 1.选中并打开文件夹中的HL-340安装程序 2.点击INSTALL即可自动完成安装 Step 3:Keil工程的建立 1.打开桌面上的Keil图标,建立一个新工程单击【Project】菜单中的【New μVision Project】,如下图:

2.选择工程保存的位置,建议最好新建一个文件夹用来保存此工程文件,方便以后管理。 3.选择单片机型号:打开Atmel目录,选择子目录下的AT89C52,点击OK,在 弹出的新对话框中选择否(N)。

4.单击【File】菜单中的【New】菜单项,或者Ctrl+N可新建一个文件Text1, 单击工具栏的图标或者Ctrl+S,在弹出的保存对话框输入文件名,注意必须在文件名后加上“.c”作为保存的文件类型(例如),然后保存。 5.回到编辑界面,单击【Target】前面的“+”号,然后在【Source Group 1】选项上单

击右键,弹出下图所示菜单。然后选择【Add Files to Group ‘Source Group1’】菜单项,如下图: 6.在弹出的对话框中选中刚才保存的“”文件并单击【Add】,再单击【Close】,如图: 7.单击左侧【Source Group 1】前面的“+”号,这时可以注意到【Source Group 1】文 件夹中多了一个子项【】,这时源代码文件就与工程关联起来了,这时在右边的“”代码编辑窗口把伟哥的代码复制过来即可,如图:

单片机STM32时钟图文理解

单片机STM32时钟图文理解 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号. 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。 高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。 低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。 低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。 OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振8MHz,第一个分频器PLLXTPRE,遇到开关PLLSRC(PLL entry clock source),我们可以选择其输出,输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE,接着遇到锁相环PLL,具有倍频作用,在这里我们可以输入倍频因子PLLMUL,要是想超频,就得在这个寄存器上做手脚啦。经过PLL的时钟称为PLLCLK。倍频因子我们设定为9倍频,也就是说,经过PLL之后,我们的时钟从原来8MHz的HSE变为72MHz的PLLCLK。紧接着又遇到了一个开关SW,经过这个开关之后就是STM32的系统时钟(SYSCLK)了。通过这个开关,可以切换SYSCLK的时钟源,可以选择为HSI、PLLCLK、HSE。我们选择为PLLCLK 时钟,所以SYSCLK就为72MHz了。PLLCLK在输入到SW前,还流向了USB预分频器,这个分频器输出为USB外设的时钟(USBCLK)。回到SYSCLK,SYSCLK经过AHB 预分频器,分频后再输入到其它外设。如输出到称为HCLK、FCLK的时钟,还直接输出

相关主题
文本预览
相关文档 最新文档