stm32总结

上传人:简****9 文档编号:94975708 上传时间:2019-08-14 格式:DOC 页数:10 大小:79.55KB
返回 下载 相关 举报
stm32总结_第1页
第1页 / 共10页
stm32总结_第2页
第2页 / 共10页
stm32总结_第3页
第3页 / 共10页
stm32总结_第4页
第4页 / 共10页
stm32总结_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《stm32总结》由会员分享,可在线阅读,更多相关《stm32总结(10页珍藏版)》请在金锄头文库上搜索。

1、固件函数库Void RCC_Configuration(void) 时钟设置函数Void GPIO_Configuration(void) GPIO引脚初始化设置Void Systick_Configuration(void) 系统定时器设置函数void USART_Configuration(void) USART收发器设置ErrorStatus 枚举值RCC_DeInit(); 将外设RCC寄存器重设为缺省值RCC_HSEConfig(); 设置外部高速晶振RCC_WaitForHSEStartUp(); 等待HSE起振RCC_HCLKConfig(); 设置AHB时钟RCC_PCLK1C

2、onfig(); 设置低速AHB时钟RCC_PCLK2Config(); 设置高速AHB时钟RCC_SYSCLK_Divn AHB时钟 = 系统时钟/nRCC_PLLConfig(); 设置PLL时钟源及倍频系数RCC_PLLCmd(); 使能或失能PLLRCC_GetSYSCLKSource(); 返回用作系统时钟的时钟源RCC_GetFlagStatus(); 检查指定的RCC标志位设置与否RCC_AHBPeriphClockCmd(); 使能或失能AHB外设时钟RCC_APB1PeriphClockCmd(); 使能或失能APB1外设时钟RCC_APB2PeriphClockCmd();

3、 使能或失能APB2外设时钟RCC_PLLSource_HSE_Div1 PLL的输入时钟 = HSE时钟频率RCC_PLLSource_HSE_Div2 PLL的输入时钟 = HSE时钟频率/2RCC_PLLSource_HSI_Div2 PLL的输入时钟 = HSI时钟频率/2RCC_PLLMul_n PLL输入时钟 * nRCC_FLAG_PLLRDY PLL就绪RCC_APB2Periph_GPIOA GPIOA时钟RCC_APB2Periph_GPIOB GPIOB时钟RCC_APB2Periph_GPIOC GPIOC时钟RCC_APB2Periph_GPIOD GPIOD时钟RC

4、C_APB2Periph_GPIOE GPIOE时钟RCC_APB2Periph_ALL 全部APB2外设时钟RESE 重置GPIO_InitTypeDef GPIO结构体GPIO_InitStructure 指向结构体GPIO_InitTypeDef的指针GPIO_Pin_n 选择待设置的GPIO管脚使用“|”可以一次选中多个GPIO_Speed 设置选中管脚的速率 GPIO_Speed_10MHz 最多输出速率10MHzGPIO_Speed_2MHz 最多输出速率2MHzGPIO_Speed_50MHz 最多输出速率50MHzGPIO_Mode 设置管脚的工作状态GPIO_Mode_AIN

5、 模拟输入GPIO_Mode_IN_FLOATING 浮空输入GPIO_Mode_IPD 下拉输入GPIO_Mode_IPU 上拉输入GPIO_Mode_Out_PP 推挽输出GPIO_Mode_Out_OD 开漏输出GPIO_Mode_AF_OD 复用开漏输出GPIO_Mode_AF_PP 复用推挽输出GPIO_Init(); 根据GPIO_InitStruct中指定的参数初始化外设 GPIO_x寄存器SysTick_CounterCmd(); 使能或失能SysTick计数器SysTick_Counter_Disable 失能计数器SysTick_Counter_Enable 使能计数器Sy

6、sTick_Counter_Clear 清除计数器的值为0SysTick_CLKSourceConfig(); 设置SysTick时钟源SysTick_CLKSource_HCLK_Div8 SysTick时钟源为AHB时钟/8SysTick_CLKSource_HCLK SysTick时钟源为AHB时钟SysTick_SetReload(); 设置SysTick重装载值FLASH_SetLatency(); 设置代码延时值FLASH_PrefetchBufferCmd(); 使能或失能预取指缓存FLASH_PrefetchBuffer_Enable 预取指缓存使能FLASH_Prefetch

7、Buffer_Disable 预取指缓存失能FLASH_Latency 用来设置FLASH储存器延时时钟周期数FLASH_Latency_0 0延时周期FLASH_Latency_1 1延时周期FLASH_Latency_2 2延时周期位绑定公式(BitBanding)SARM区 0x20000000 0x200FFFFF1MAliasAddr = 0x22000000 + (A - 0x20000000)*8 + n)*4/可以用左移代替乘法 = 0x22000000 + (A - 0x20000000)*32 + 4*nSARM区 0x40000000 0x400FFFFF1MAliasA

8、ddr = 0x42000000 + (A - 0x40000000)*8 + n)*4 = 0x42000000 + (A - 0x40000000)*32 + 4*nAliasAddr = (A&0xF0000000) + 0x2000000 + (A&0xFFFFF)*32 + 4*n)bit_word_offset = (byte_offset x 32) + (bit_number 4) bit_word_addr = bit_band_base + bit_word_offset 其中:bit_word_offset是目标位在存取器位段区中的位置bit_word_addr 是别名存

9、储器区中字的地址,它映射到某个目标位。bit_band_base 是别名区的起始地址。byte_offset 是包含目标位的字节在位段的序号bit_number 是目标位所在位置(0-31)void RCC_Configuration(void)ErrorStatus HSEStartUpStatus;RCC_DeInit();RCC_HSEConfig(RCC_HSE_ON);HSEStartUpStatus = RCC_WaitForHSEStartUp();if(HSEStartUpStatus = SUCCESS)RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_

10、PCLK2Config(RCC_HCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);FLASH_SetLatency(FLASH_Latency_2);FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);RCC_PLLCmd(ENABLE);while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET);RCC_SYSCLKConfig(RCC_SYSCLKSource_

11、PLLCLK);while(RCC_GetSYSCLKSource() != 0x08);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_P

12、P;GPIO_Init(GPIOA, &GPIO_InitStructure);void Systick_Configuration(void)SysTick_CounterCmd(SysTick_Counter_Disable);SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);SysTick_CounterCmd(SysTick_Counter_Clear);SysTick_SetReload(9000 * 1000);void Delay_Second(void)SysTick_CounterCmd(SysTick_Counter_

13、Enable);while(SysTick_GetFlagStatus(SysTick_FLAG_COUNT) = 0);SysTick_CounterCmd(SysTick_Counter_Disable);SysTick_SetReload(9000 * 1000);/SysTick_CounterCmd(SysTick_Counter_Clear);void USART_Configuration(void)USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 9600;USART_InitS

14、tructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_Hardware FlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);USART_Cmd(USART1, ENABLE);程序下载与调试1.FLASH(ROM)(0x08000000)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号