首页 STM32学习笔记

STM32学习笔记

举报
开通vip

STM32学习笔记STM32学习笔记 型号: STM32学习笔记 版本: 页次: 1 STM32学习笔记 型号: STM32学习笔记 版本: 页次: 2 一( 关于RCC_Configuration RCC的配置函数,这个函数配置STM32的时钟,里面的函数都为STM32的库函数 void RCC_Configuration(void) { /* RCC system reset(for debug purpose) */ /* 复位所有的RCC外围设备寄存器,不改变内部高速振荡器调整位(HSITRIM[4.....

STM32学习笔记
STM32学习笔记 型号: STM32学习笔记 版本: 页次: 1 STM32学习笔记 型号: STM32学习笔记 版本: 页次: 2 一( 关于RCC_Configuration RCC的配置函数,这个函数配置STM32的时钟,里面的函数都为STM32的库函数 void RCC_Configuration(void) { /* RCC system reset(for debug purpose) */ /* 复位所有的RCC外围设备寄存器,不改变内部高速振荡器调整位(HSITRIM[4..0])以及 备份域控制寄存器(RCC_BDCR),控制状态寄存器RCC_CSR */ RCC_DeInit(); /* Enable HSE */ /* 开启HSE振荡器 */ /* 三个参数 RCC_HSE_ON 开启 RCC_HSE_OFF 关闭 RCC_HSE_BYPASS 使用外部时钟振荡器 */ RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ /* HSEStartUpStatus为枚举类型变量,2种取值,0为ERROR,非0为SUCCESS 等待HSE准备好,若超时时间到则退出*/ HSEStartUpStatus = RCC_WaitForHSEStartUp(); /* 当HSE准备完毕切振荡稳定后 */ if(HSEStartUpStatus == SUCCESS) { /* HCLK = SYSCLK */ /* 配置AHB时钟,这个时钟从SYSCLK分频而来 分频系数有1,2,4,8,16,64,128,256,512 */ 型号: STM32学习笔记 版本: 页次: 3 RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ /* 设置低速APB2时钟,这个时钟从AHB时钟分频而来 分频系数为1,2,4,8,16 */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ /* 设置低速APB1时钟,这个时钟从AHB时钟分频而来 分频系数为1,2,4,8,16 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* PLLCLK = 8MHz * 9 = 72 MHz */ /* 设置PLL的时钟源和乘法因子 第一个入口参数为时钟源,共有3个 RCC_PLLSource_HSI_Div2 RCC_PLLSource_HSE_Div1 RCC_PLLSource_HSE_Div2 乘法因子RCC_PLLMul_2~RCC_PLLMul_16,之间参数连续 */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* Enable PLL */ /* 输入参数为ENABLE及DISABLE */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } 型号: STM32学习笔记 版本: 页次: 4 /* Select PLL as system clock source */ /*选择系统时钟源,三个参数 RCC_SYSCLKSource_HSI 内部高速振荡器 外部高速振荡器 RCC_SYSCLKSource_HSE RCC_SYSCLKSource_PLLCLK PLL时钟 */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ /* 返回系统当前的时钟源 返回值有3种 0x00 HSI是当前时钟源 0x04 HSE是当前时钟源 0x08 PLL是当前时钟源 */ while(RCC_GetSYSCLKSource() != 0x08) { } } /* Enable GPIOB, GPIOC and AFIO clocks */ /* 使能低速总线APB2上的外围设备 这里打开了IO端口B的时钟 AFIO是重映射功能的时钟,一般未使用REMAP功能时,此时钟不必开启 输入参数见UM0472 PAGE 426 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); } 广州御银科技股份有限公司 型号: PT075 主控制器程序流程图 版本: V1.0 页次: 5 二( STM32GPIO设定 GPIO_Mode_AIN = 0x0, 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, 浮空输入 GPIO_Mode_IPD = 0x28, 带下拉输入 GPIO_Mode_IPU = 0x48, 带上拉输入 GPIO_Mode_Out_OD = 0x14, 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示配置相应管脚为GPIO开漏输出(真双向IO) GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出 GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式 推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止. 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内). 要实现 线与 需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。但用作纯粹的输出时,可以选用GPIO_Mode_Out_PP,但是有些硬件上有要求用开发射极的结构就要用GPIO_Mode_Out_OD 。如果既要用于输出,又要接收信号作输入,无需改变该pin的工作模式,只需设定为输入浮点状态GPIO_Mode_IN_FLOATING ,但是读的时候读输入寄存器(GPIOE->IDR)的值。输出值照样设定,不过输出pin脚可能要硬件上 上拉。 三( NVIC:系统中断管理 NVIC:嵌套向量中断控制器~管理系统内部的中断~负责打开和关闭中断。
本文档为【STM32学习笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731942
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-20
浏览量:27