STM32基本设置函数

合集下载

单片机STM32开发中常用库函数分析

单片机STM32开发中常用库函数分析

单片机STM32开发中常用库函数分析在STM32开发中,使用库函数可以帮助开发人员更快速、更便捷地实现目标功能。

下面是一些常用的STM32库函数的分析:1. GPIO库函数:GPIO库函数用于对STM32的通用输入输出引脚进行配置和控制。

通过这些函数可以实现引脚的初始化、读取和设置等操作。

例如,GPIO_Pin_Init(函数可以对引脚进行初始化配置,GPIO_Pin_Read(函数用于读取引脚的电平,GPIO_Pin_Write(函数用于设置引脚的输出电平。

这些函数的使用可以方便地对外设进行控制。

2. NVIC库函数:NVIC库函数用于对中断向量表进行操作和配置。

通过这些函数可以实现中断的使能、优先级的设置等操作。

例如,NVIC_EnableIRQ(函数可以使能指定的中断,NVIC_SetPriority(函数可设置中断的优先级。

这些函数的使用可以方便地管理中断响应。

3. RCC库函数:RCC库函数用于对STM32的时钟系统进行配置和管理。

通过这些函数可以实现外部时钟源的配置、APB总线时钟的配置等操作。

例如,RCC_OscConfig(函数可进行时钟源的配置,RCC_APBPeriphClockCmd(函数可使能相应的外设时钟。

这些函数的使用可以方便地进行时钟管理。

4. UART库函数:UART库函数用于对STM32的串行通讯端口进行操作和配置。

通过这些函数可以实现串口的初始化、发送和接收等操作。

例如,UART_Init(函数用于串口的初始化设置,UART_SendData(函数用于发送数据,UART_ReceiveData(函数用于接收数据。

这些函数的使用可以方便地进行串口通讯。

5. SPI库函数:SPI库函数用于对STM32的串行外设接口进行操作和配置。

通过这些函数可以实现SPI通讯的初始化、发送和接收等操作。

例如,SPI_Init(函数用于SPI的初始化设置,SPI_SendData(函数用于发送数据,SPI_ReceiveData(函数用于接收数据。

STM32库函数功能详解

STM32库函数功能详解

STM32库函数功能详解STM32是一款广泛应用于嵌入式系统中的微控制器系列,由意法半导体(STMicroelectronics)开发。

它具有高性能、低功耗和丰富的外设功能,广泛应用于各种应用领域。

为了方便开发者进行快速开发和简化编程流程,STM32提供了一系列库函数,本文将对其功能进行详细解析。

1.GPIO库函数:GPIO库函数用于配置STM32的通用输入输出口(GPIO)功能,包括输入、输出模式的配置和读写操作。

通过GPIO库函数,开发者可以方便地读取外部输入信号、控制外部设备的输出。

例如,使用GPIO库函数可以简单地配置一个引脚为输入模式,并读取其电平状态,或者配置一个引脚为输出模式,并设置其输出电平。

2.EXTI库函数:EXTI库函数用于配置STM32的外部中断(EXTI)功能,可以实现对外部事件的中断响应功能。

通过EXTI库函数,开发者可以方便地配置外部中断的触发方式和优先级,以及处理中断事件。

例如,使用EXTI库函数可以配置一个引脚为上升沿触发模式,并在引脚触发中断时执行相应的中断服务函数。

3.RCC库函数:RCC库函数用于配置和控制STM32的时钟系统(RCC),包括各个外设模块和系统时钟的配置。

通过RCC库函数,开发者可以方便地配置STM32的时钟源、时钟分频和时钟使能。

例如,使用RCC库函数可以配置系统时钟为指定频率,以及使能和配置外设时钟。

4.NVIC库函数:NVIC库函数用于配置和控制STM32的中断控制器(NVIC)功能,包括中断向量表和中断优先级的配置。

通过NVIC库函数,开发者可以方便地配置中断向量表和中断优先级,以及控制中断的使能和屏蔽。

例如,使用NVIC库函数可以配置一个外部中断的优先级和使能状态,以及控制中断的屏蔽和释放。

5.ADC库函数:ADC库函数用于配置和控制STM32的模数转换器(ADC)功能,可以实现模拟信号的数字化转换。

通过ADC库函数,开发者可以方便地配置ADC的转换通道、采样速率和转换模式。

STM32通用定时器库函数设置心得——新手必看

STM32通用定时器库函数设置心得——新手必看

STM32通用定时器库函数设置心得——新手必看STM32通用定时器是STM32微控制器系列中很重要的一个组件,它具有多种功能,包括定时器、PWM生成器、输入捕获和输出比较等。

在STM32中,定时器的使用非常广泛,常用于各种定时操作、计数操作和脉冲宽度调制等应用。

本文将对STM32通用定时器的库函数进行介绍,帮助新手快速掌握并应用。

首先,在使用STM32通用定时器之前,需要了解一些基本概念。

STM32通用定时器包括TIM2、TIM3、TIM4和TIM5等,它们具有相似的特性和功能,可以根据实际需求选择使用。

在使用定时器之前,需要开启其时钟,并进行相应的初始化设置。

1.定时器时钟的开启和初始化开启定时器的时钟,需要在RCC时钟控制寄存器中设置相应的位。

具体来说,需要设置APB1或APB2总线上的定时器时钟使能位,开启相应定时器的时钟。

初始化定时器,需要对定时器的模式、预分频值、计数模式、自动重装载寄存器和定时器中断进行设置。

其中,预分频值决定了定时器的时钟频率,计数模式决定了定时器的工作方式,自动重装载寄存器决定了定时器的溢出时间。

2.定时器中断的设置定时器中断用于定时触发一些操作,可以是定时执行一些函数、改变一些变量或者触发其中一种事件。

定时器的中断分为溢出中断和比较中断两种,可以根据实际需求选择使用。

在使用定时器中断之前,需要设置定时器的中断使能位,并在中断处理函数中编写相应的中断处理代码。

在中断处理函数中,可以根据具体需求进行相应的操作,比如改变一些标志位、执行一些函数或者发送一些数据。

3.定时器的计数和计时定时器的计数和计时是定时器的核心功能,它决定了定时器的工作方式和定时器值的变化规律。

定时器的计数可以根据实际需要进行设置,可以是向上计数、向下计数或者上下计数。

定时器的计时功能需要根据预分频值和自动重装载寄存器进行计算,以确定定时器的溢出时间和定时时间。

通过改变预分频值和自动重装载寄存器,可以实现不同的定时功能。

stm32库函数详解

stm32库函数详解
GPIO_Pin 该参数选择待设置的 GPIO 管脚,使用操作符“|”可以一次选中多个管脚。可以使用下表中的任意组合。 GPIO_Pin_None:无管脚被选中 GPIO_Pin_x:选中管脚 x(0--15) GPIO_Pin_All:选中全部管脚
GPIO_Speed GPIO_Speed:用以设置选中管脚的速率。 GPIO_Speed_10MHz:最高输出速率 10MHz GPIO_Speed_2MHz:最高输出速率 2MHz GPIO_Speed_50MHz:最高输出速率 50MHz
名为 PPP_StructInit 的函数,其功能为通过设置 PPP_InitTypeDef 结构中的各种参数来定义外设的功能,例 如:USART_StructInit
名为 PPP_Cmd 的函数,其功能为使能或者失能外设 PPP,例如: SPI_Cmd.
名为 PPP_ITConfig 的函数,其功能为使能或者失能来自外设 PPP 某中断源,例如: RCC_ITConfig.
功能描述:根据 GPIO_InitStruct 中指定的参数初始化外设 GPIOx 寄存器 例: GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);
1
命名规则
在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。

stm32标准库函数手册

stm32标准库函数手册

stm32标准库函数手册STM32标准库函数是一种由ST公司推出的一套用于STM32微控制器编程的开发工具,它能够帮助开发者快速地进行芯片的开发、调试和测试。

本文将对STM32标准库函数进行详细的介绍,并提供中文手册,帮助开发者更好地掌握这个工具。

一、STM32标准库函数概述STM32标准库函数是一套由ST公司提供的软件库,包括了一系列用于STM32微控制器的常用功能函数,例如GPIO、USART、SPI、I2C等,这些函数可以用于快速实现各种应用。

同时,ST公司也提供了一些示例代码,可以方便开发者进行学习和参考。

STM32标准库函数可以与各种不同的开发环境集成,例如Keil、IAR、STM32Cube等,方便开发者进行开发。

在使用STM32标准库函数时,可以通过库函数的方式来调用硬件资源,比如设置GPIO口的状态、使用USART进行通信、配置外部中断等。

1. 系统初始化函数:这些函数包括了芯片系统时钟的初始化、中断优先级的设置、时钟输出的配置等,必须在主函数前进行调用。

2. GPIO和外部中断函数:这些函数用于对GPIO口状态的配置和读取,以及对外部中断的控制。

3. USART函数:这些函数用于对串口进行配置和读写操作。

8. DAC函数:这些函数用于对模拟量进行输出。

以下是STM32标准库函数的中文手册,包含了常用函数的介绍和使用方法。

1. 系统初始化函数1.1. RCC配置函数函数原型:void RCC_Configuration(void)函数功能:配置STM32的时钟源和时钟分频系数。

函数说明:在函数内部,首先对PLL时钟源进行配置,然后根据系统时钟的需要选择PLL时钟的分频系数,然后对AHB、APB1、APB2的分频系数进行配置。

最后,开启相应时钟使能位。

函数功能:对STM32的中断向量表进行重定位,并设置各个中断的优先级。

函数说明:中断向量表的地址是由SCB_VTOR寄存器来控制的。

stm32单片机的库函数和关键代码

stm32单片机的库函数和关键代码

一、STM32单片机库函数概述STM32单片机是一款由意法半导体公司提供的系列32位微控制器,具有高性能、低功耗等特点,广泛应用于工业控制、汽车电子、智能家居等领域。

在STM32单片机的开发过程中,库函数是开发者最常使用的工具之一,通过库函数可以方便地调用各种功能模块的接口,提高开发效率、降低开发难度。

本文将重点介绍STM32单片机常用的库函数和关键代码。

二、GPIO库函数1. GPIO初始化在STM32单片机中,GPIO是最常用的功能模块之一,可用于控制外部设备,实现输入输出等功能。

在使用GPIO之前,首先需要初始化GPIO的引脚方向、输入输出模式、上拉下拉等配置。

以下是GPIO初始化函数的关键代码:```void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);```其中,GPIOx代表GPIO的端口号,GPIO_InitStruct包含了GPIO的各项配置参数。

2. GPIO读取状态在实际应用中,经常需要读取GPIO引脚的状态,判断外部设备的输入信号。

以下是GPIO读取状态的关键代码:```uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);```该函数可以读取指定GPIO引脚的状态,返回值为0或1,分别代表引脚的低电平或高电平。

3. GPIO输出控制除了读取外部设备的输入信号外,我们还需要控制GPIO引脚输出高低电平,驱动外部设备。

以下是GPIO输出控制的关键代码:```void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); ```通过GPIO_SetBits和GPIO_ResetBits函数,可以分别将指定GPIO 引脚输出高电平或低电平。

stm32标准库函数说明

stm32标准库函数说明

stm32标准库函数说明
STM32标准库函数是为了方便开发者使用STM32微控制器而提供的一系列函数和库。

这些库函数提供了许多常用的功能,如GPIO操作、定时器操作、串口通信、ADC转换等。

以下是一些常见的STM32标准库函数及其说明:
GPIO 初始化函数:用于配置GPIO(General-Purpose Input/Output)的引脚模式(输入、输出、复用等)和参数(输出类型、输出速度、上拉/下拉等)。

定时器初始化函数:用于配置定时器的模式(计数器模式、PWM模式等)和参数(时钟源、自动重载值等)。

串口初始化函数:用于配置串口通信的参数(波特率、数据位、停止位、奇偶校验等)。

ADC 初始化函数:用于配置ADC(Analog-to-Digital Converter)的参数(转换模式、分辨率等)。

中断初始化函数:用于配置中断的优先级和触发方式。

延时函数:用于产生一定的延时。

睡眠函数:用于使微控制器进入低功耗模式,降低功耗。

串口发送和接收函数:用于串口通信的发送和接收数据。

ADC 读取函数:用于读取ADC转换的结果。

GPIO 操作函数:用于控制GPIO引脚的电平高低或读取引脚的电平状态。

STM32库函数汇总

STM32库函数汇总

STM32库函数汇总1.GPIO初始化函数 第1个参数设置GPIO端⼝,第⼆个为结构体设置模式 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 2.读取输⼊电平函数 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 读取某个GPIO输⼊的电平,实际操作IDR寄存器,有返回值 uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); 读取⼀组GPIO输⼊的电平,实际操作IDR寄存,有返回值3.读取输出电平函数 uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 读取某个GPIO输出的电平,实际操作ODR寄存器,有返回值 uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取某组GPIO输出的电平,实际操作ODR寄存器,有返回值4.设置输出电平函数 GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 设置⾼电平实际操作,BSRR寄存器 GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 设置低电平,实际操作BRR寄存器5.使能时钟函数 RCC_APB2PeriphColckCmd();6.开启重映射时钟 GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);参数1可以是串⼝,SWJ等很多种类型7.设置中断优先级分组 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 在misc.c⽂件中8.设置抢占优先级和响应优先级 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);需要设置通道,抢占优先级,响应优先级,使能通道等9.串⼝相关函数 void USART_Init();串⼝初始化:波特率,数据字长,奇偶校验,硬件流控以收发使能 void USART_Cmd(形参1,形参2);使能串⼝,形参1是串⼝位,形参2是ENABLE; void USART_ITConfig(形参1,形参2,形参3);使能中断,形参1是串⼝位,形参2是要开启中断的类型,形参3是ENABLE; void USART_SendData(形参1,形参2);发送数据到串⼝,DR,形参1是串⼝位,形参2是要发送是数据 uint16_t USART_ReceiveData(形参1);接收数据,从DR读取接收到的数据,形参1值是串⼝位 FlagStatus USART_GetFlagStatus();获取状态标志位 void USART_ClearFlag();清除状态标志位 ITStatus USART_GetITStatus(形参1,形参2)获取中断标志位;参数1值是串⼝位,参数2是要获取的状态 void USART_ClearITPendingBit();清除中断状态标志位 USART1_IRQHandler();USART中断函数,产⽣中断后进⼊,函数在核⼼⽂件中;10.外部中断函数 GPIO_EXTILineConfig(参数1,参数2);设置中断线的映射关系,参数1与参数2为要中断的IO EXTI_Init();初始化外部中断线,触发⽅式, EXTI_GetITStatus();判断中断状态是否发⽣ EXTI_ClearlTPendingBit();清除中断线上的标志位11.独⽴看门狗实验 IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);形参后⾯跟ENABLE,取消写保护 IWDG_SetPrescaler(uint8_t IWDG_Prescaler);设置预分频系数 IWDG_SetReload(uint16_t Reload);设置重装载值 IWDG_Enable();使能看门狗 IWDG_ReloadCounter();喂狗12.窗⼝看门狗 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);使能窗⼝看门狗 WWDG_SetPrescaler();设置预分频系数 WWDG_SetWindowValue();设置上窗⼝值  WWDG_EnableIT(); 开启窗⼝看门狗中断 NVIC_Init();中断初始化 WWDG_Enable();使能看门狗,设置初始计数器值 WWDG_SetCounter();喂狗 设置计数器值 WWDG_IRQHandler();编写中断服务函数13.通⽤定时器 TIM_TimeBaseInit(TIM3, &TIM_Timesture); 初始化通⽤定时器 TIM_GetITStatus(TIM3,TIM_IT_Update); 获取定时器标志位发⽣中断后标志位置1 SET TIM_ClearITPendingBit(TIM3,TIM_IT_Update);清除定时器标志位 TIM_ITConfig(TIM3, TIM_IT_Update,ENABLE);开启定时器中断 TIM_Cmd(TIM3, ENABLE); 使能通⽤定时器。

stm32f3 标准库函数说明

stm32f3 标准库函数说明

一、STM32F3标准库简介STM32F3是STM32系列微控制器的一款产品,它采用Cortex-M4内核,具有丰富的外设和功能。

STM32F3标准库是由STMicroelectronics官方提供的一套用于开发STM32F3系列微控制器的函数库,它包含了丰富的函数和例程,能够为开发者提供方便快捷的开发支持。

二、STM32F3标准库函数分类1. GPIO函数GPIO函数是用于对STM32F3微控制器的GPIO端口进行操作的函数集合,包括对GPIO端口的初始化、输入输出设置、读取状态等功能。

2. 定时器函数定时器函数是用于对STM32F3微控制器的定时器进行操作的函数集合,包括定时器的初始化、启动、停止、中断处理等功能。

3. 中断函数中断函数是用于对STM32F3微控制器的中断进行操作的函数集合,包括中断的使能、优先级设置、中断向量表的编写等功能。

4. 串口函数串口函数是用于对STM32F3微控制器的串口进行操作的函数集合,包括串口的初始化、发送数据、接收数据、中断处理等功能。

5. ADC/DAC函数ADC/DAC函数是用于对STM32F3微控制器的模数转换器和数模转换器进行操作的函数集合,包括ADC/DAC的初始化、转换启动、中断处理、数据处理等功能。

6. 外设驱动函数外设驱动函数是用于对STM32F3微控制器的外设进行操作的函数集合,包括I2C、SPI、USB、CAN等外设的初始化、数据传输、中断处理等功能。

三、STM32F3标准库函数使用示例以下是一些STM32F3标准库函数的使用示例,供开发者参考:1. GPIO函数示例:```c#include "stm32f3xx.h"int main(){GPIO_InitTypeDef GPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;GPIO_Init(GPIOA, GPIO_InitStructure);while(1){GPIO_SetBits(GPIOA, GPIO_Pin_0);//延时一段时间GPIO_ResetBits(GPIOA, GPIO_Pin_0);//延时一段时间}}```2. 定时器函数示例:```c#include "stm32f3xx.h"int main(){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Prescaler= 7200 - 1;TIM_TimeBaseStructure.TIM_Period= 10000 - 1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2, TIM_TimeBaseStructure);TIM_Cmd(TIM2, ENABLE);while(1){if(TIM_GetFlagStatus(TIM2, TIM_FLAG_Update)!= RESET) {//定时器计数器达到设定值时执行的操作TIM_ClearFlag(TIM2, TIM_FLAG_Update);}}```四、总结STM32F3标准库函数是用于开发STM32F3微控制器的重要工具,通过学习和掌握标准库函数的使用方法,开发者可以更加高效地进行STM32F3系列微控制器的开发工作。

STM32库函数汇总

STM32库函数汇总

STM32库函数汇总STMicroelectronics提供了一套完整的软件开发工具包(STMCube),其中包含了一系列的库函数,用于简化STM32的开发过程。

下面是一些常用的STM32库函数的简要介绍:1.GPIO库函数:用于设置和控制GPIO(通用输入输出)引脚状态,包括初始化、读取和写入引脚状态等。

2.外部中断库函数:用于配置和控制外部中断功能,包括触发方式、中断优先级等。

3.定时器库函数:用于配置和控制定时器功能,包括计数模式、定时器中断、PWM输出等。

4.ADC库函数:用于配置和控制ADC(模数转换器)功能,包括参考电压、采样周期、数据读取等。

5.UART库函数:用于配置和控制UART(串行通用异步收发器)功能,包括波特率、数据传输、中断接收等。

6.SPI库函数:用于配置和控制SPI(串行外设接口)功能,包括传输方式、模式、速率、中断接收等。

7.I2C库函数:用于配置和控制I2C(串行外设接口)功能,包括传输方式、速率、地址、中断接收等。

8.DMA库函数:用于配置和控制DMA(直接内存访问)功能,实现高速数据传输,减轻CPU负担。

9.NVIC库函数:用于配置和控制NVIC(嵌套向量中断控制器)功能,包括中断优先级、使能、清除等。

10.RCC库函数:用于配置和控制RCC(时钟控制)功能,包括系统时钟频率、外设时钟使能、时钟源选择等。

11. FLASH库函数:用于配置和控制Flash存储器功能,包括写入、擦除、读取等。

12.PWM库函数:用于配置和控制PWM(脉冲宽度调制)功能,用于控制电机速度、LED亮度等。

B库函数:用于配置和控制USB(通用串行总线)功能,实现USB设备或主机功能。

14.CRC库函数:用于配置和控制CRC(循环冗余校验)功能,用于数据校验。

15.RTC库函数:用于配置和控制RTC(实时时钟)功能,包括时钟设置、中断控制等。

以上是一些常用的STM32库函数,通过使用这些库函数,开发者可以快速高效地开发STM32相关的应用。

STM32库函数功能详解

STM32库函数功能详解

STM32库函数功能详解1.GPIO库函数:GPIO库函数用于对STM32的GPIO外设进行初始化和控制。

包括GPIO的初始化、输入输出模式设置、上拉下拉设置、数据读写操作等。

通过这些函数,可以方便地对单片机的GPIO进行操作。

ART库函数:USART库函数用于对STM32的串口外设进行初始化和数据的收发操作。

包括串口的初始化、波特率设置、发送和接收数据等。

通过这些函数,可以方便地实现串口通信功能。

3.SPI库函数:SPI库函数用于对STM32的SPI外设进行初始化和数据传输操作。

包括SPI的初始化、数据传输的设置、发送和接收数据等。

通过这些函数,可以方便地实现SPI通信功能。

4.I2C库函数:I2C库函数用于对STM32的I2C外设进行初始化和数据传输操作。

包括I2C的初始化、数据传输的设置、发送和接收数据等。

通过这些函数,可以方便地实现I2C通信功能。

5.ADC库函数:ADC库函数用于对STM32的模数转换器进行初始化和数据转换操作。

包括ADC的初始化、转换通道的设置、启动转换和读取转换结果等。

通过这些函数,可以方便地实现模数转换功能。

6.PWM库函数:PWM库函数用于对STM32的定时器进行初始化和PWM输出操作。

包括定时器的初始化、周期和占空比的设置、启动和停止PWM输出等。

通过这些函数,可以方便地实现PWM输出功能。

7.NVIC库函数:NVIC库函数用于对STM32的中断控制器进行初始化和中断控制操作。

包括中断优先级的设置、中断使能和禁止控制等。

通过这些函数,可以方便地实现中断控制功能。

8.RCC库函数:RCC库函数用于对STM32的时钟控制器进行初始化和时钟设置操作。

包括时钟的使能和禁止、时钟源的选择和分频设置等。

通过这些函数,可以方便地实现时钟设置功能。

9.DMA库函数:DMA库函数用于对STM32的DMA控制器进行初始化和数据传输操作。

包括DMA的初始化、数据源和目的地的设置、启动和停止传输等。

stm32l0标准库函数

stm32l0标准库函数

stm32l0标准库函数STM32L0系列微控制器是广泛应用于嵌入式系统的芯片,其标准库函数提供了丰富的功能和接口,用于读取、写入和操作硬件资源。

本文将介绍STM32L0标准库函数的基本概念、常见函数以及使用方法。

一、标准库函数概述STM32L0标准库函数是一组预先编写好的函数,用于操作STM32L0微控制器的硬件资源,如GPIO、USART、ADC等。

这些函数提供了标准的接口和参数,方便开发者快速上手并实现各种功能。

标准库函数通常由STM32官方提供,并经过严格测试,以确保其可靠性和稳定性。

二、常见标准库函数1.GPIO函数:用于控制GPIO口的状态,如设置输出模式、读取输入状态等。

常见的GPIO函数包括GPIO_WriteBit、GPIO_ReadInputData等。

ART函数:用于串口通信,实现设备之间的数据传输。

常见的USART函数包括USART_SendData、USART_ReceiveData等。

3.ADC函数:用于模拟信号的采集和转换,通常用于测量温度、压力等参数。

常见的ADC函数包括ADC_StartConversion、ADC_GetConversionValue等。

除此之外,STM32L0标准库还提供了其他一些常用函数,如PWM 生成器、定时器等。

这些函数的使用方法大同小异,只需根据具体的硬件资源和需求进行适当的配置即可。

三、使用标准库函数在使用STM32L0标准库函数时,需要先了解所使用的硬件资源和相关寄存器。

然后,根据标准库函数的参数和返回值进行调用,通常需要传入相应的硬件地址和参数值。

在完成操作后,需要调用相应的清理函数或释放资源,以确保系统的稳定性和安全性。

以下是一个简单的示例代码,演示如何使用STM32L0标准库函数实现串口通信:```c#include"stm32l0xx.h"voidmain(){//配置USART参数USART_InitTypeDefUSART_InitStructure;USART_ART_BaudRate=9600;USART_ART_WordLength=USART_WordLength_8b;USART_ART_StopBits=USART_StopBits_1;USART_ART_Parity=USART_Parity_No;USART_ART_HardwareFlowControl=USART_Hardw areFlowControl_None;USART_ART_Mode=USART_Mode_Rx|USART_Mode_T x;USART_Init(USART1,&USART_InitStructure);//发送数据USART_SendData(USART1,'H');while(!USART_GetFlagStatus(USART1,USART_FLAG_TC));//等待发送完成//接收数据并处理while(USART_GetFlagStatus(USART1,USART_FLAG_RXF)==RESET); //等待接收数据uint8_treceivedData=USART_ReceiveData(USART1);//读取接收到的数据//处理接收到的数据...}```以上示例代码中,我们使用了STM32L0标准库中的USART函数来实现串口通信。

stm32中printf函数的用法和配置

stm32中printf函数的用法和配置

stm32中printf函数的用法和配置在STM32中使用printf函数来进行串口打印输出是一种常见的调试手段。

printf函数是C语言标准库中的一个函数,用于格式化输出字符串。

要在STM32中使用printf函数,需要完成以下几个步骤:1.配置串口:首先,需要在STM32的引脚配置中设置相应的引脚为串口模式,并且初始化串口对应的寄存器。

2. 配置printf函数:接下来,需要在代码中重新定义printf函数,使其能够与串口进行通信。

这可以通过重写标准库中的retarget.c文件完成。

3.初始化串口:在主函数中,需要进行串口的初始化,包括波特率、数据位、停止位等参数的配置。

4. 使用printf函数:配置完成后,可以直接在代码中使用printf函数来进行串口打印输出。

具体的配置和用法如下所示:1.配置串口:首先,在STM32的引脚配置中,将相应的引脚设置为串口功能,并初始化串口寄存器。

2. 配置printf函数:需要重新定义printf函数,将输出的数据通过串口发送出去。

可以在标准库的retarget.c文件中,重写以下函数:- int _write(int fd, char 某ptr, int len): 重写该函数,将ptr参数中的数据通过串口发送出去。

- int _read(int fd, char 某ptr, int len): 重写该函数,将串口接收到的数据存储到ptr参数中。

在以上两个函数中,可以使用串口的发送和接收函数来完成相应的操作。

3.初始化串口:在主函数中,需要进行串口的初始化,包括波特率、数据位、停止位等参数的配置。

可以使用CubeMX等工具来配置串口参数,并生成相应的初始化代码。

4. 使用printf函数:配置完成后,可以在代码中使用printf函数来进行串口打印输出。

例如:```cprintf("Hello, World!\n");```在串口接收到数据后,会自动将其发送到电脑终端,用于调试和输出信息。

stm32hal库函数说明手册

stm32hal库函数说明手册

stm32hal库函数说明手册(原创实用版)目录一、STM32HAL 库概述二、STM32HAL 库常用函数说明1.GPIO 操作相关函数2.中断处理相关函数3.串行通信相关函数4.定时器操作相关函数5.输入输出相关函数三、STM32HAL 库函数使用示例四、总结正文一、STM32HAL 库概述STM32HAL 库是 STM32 微控制器的官方软件库,它提供了丰富的功能,包括 GPIO 操作、中断处理、串行通信、定时器操作和输入输出等。

使用STM32HAL 库可以简化程序开发,提高开发效率。

本篇文章将对 STM32HAL 库的常用函数进行说明,并给出使用示例。

二、STM32HAL 库常用函数说明1.GPIO 操作相关函数GPIO(通用输入输出)是 STM32 微控制器中最常用的功能之一。

以下是几个常用的 GPIO 函数:- `halgpioinit()`:GPIO 初始化函数,用于配置 GPIO 的引脚模式、输出类型、速度等。

- `halgpiowrite()`:用于设置或清除 GPIO 引脚的状态。

- `halgpioread()`:用于读取 GPIO 引脚的状态。

- `halgpioexticallback()`:中断回调函数,用于处理 GPIO 外部中断事件。

2.中断处理相关函数中断是 STM32 微控制器中常用的功能,可以用于处理各种外部事件。

以下是几个常用的中断处理函数:- `hal_nvic_init()`:NVIC(嵌套中断向量列表控制器)初始化函数,用于配置 NVIC 的相关参数。

- `hal_nvic_irqHandler()`:NVIC 中断处理函数,用于处理 NVIC 中的中断请求。

- `hal_nvic_irqEnable()`:用于启用 NVIC 中的某个中断。

- `hal_nvic_irqDisable()`:用于禁用 NVIC 中的某个中断。

3.串行通信相关函数串行通信是 STM32 微控制器中常用的功能,以下是几个常用的串行通信函数:- `haluart_init()`:UART(通用异步收发器)初始化函数,用于配置 UART 的相关参数。

浅析STM32中常用的三个函数(sys.c,delay.c,usart.c)之一

浅析STM32中常用的三个函数(sys.c,delay.c,usart.c)之一

浅析STM32中常⽤的三个函数(sys.c,delay.c,usart.c)之⼀1.sys.c(这个主要是定义位带区地址的宏定义,因此主要的代码都在sys.h中) 其实,本质上sys就是实现位带区映射(每1Bit)到位带别名区(每32位,即1字),从⽽我们可以操作位带别名区⾥的“别名”,进⽽操控位带区对应的位置。

 ⽀持了位带操作后,可以使⽤普通的加载/存储指令来对单⼀的⽐特进⾏读写。

在CM3中,有两个区中实现了位带。

其中⼀个是SRAM 区的最低1MB 范围,第⼆个则是⽚内外设区的最低1MB 范围。

 ⽀持位带操作的两个内存区的范围是: 0x2000_0000‐0x200F_FFFF(SRAM 区中的最低1MB) 0x4000_0000‐0x400F_FFFF(⽚上外设区中的最低1MB)原理:这两个区中的地址除了可以像普通的RAM ⼀样使⽤外,它们还都有⾃⼰的“位带别名区”,位带别名区把每个⽐特膨胀成⼀个32 位的字。

当你通过位带别名区访问这些字时,就可以达到访问原始⽐特的⽬的。

我们可以通过下图来了解地址映射的过程:接下来把SRAM位带区和外设位带区各⾃映射到的位带别名区的计算公式列出来:记位带区所在字节地址为A,位序号在别名区的地址为:内存SRAM公式:SRAMAddr=0x22000000+((A‐0x20000000)*8+n)*4 =0x22000000+ (A‐0x20000000)*32 + n*4⽚上外设公式:PERIPHAddr=0x42000000+((A‐0x40000000)*8+n)*4 =0x42000000+ (A‐0x40000000)*32 + n*4这些可以通过宏定义来实现:#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))(addr & 0xF0000000)是起始地址,+0x2000000就成了位带别名区的基地址,相当于取位带区的地址(字节数)和位数,然后映射到位带别名区,其中+((addr &0xFFFFF)<<5)就是偏移地址(原始地址跟原始基地址的差距)*32,(bitnum<<2)就是位偏移*4;//IO⼝操作宏定义#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) //地址映射#define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) //取映射之后地址的值#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)) //通过起始位带地址的地址和位数取位带别名区的地址的值通过上边,我们可以基本掌握位带区到位带别名区的转换过程,可以通过下边的两个表练习⼀下。

stm标准库函数

stm标准库函数

STMicroelectronics (STM) 为其微控制器(MCU) 提供了一套标准外设库(Standard Peripheral Library, SPL) 或HAL (硬件抽象层, Hardware Abstraction Layer) 库。

这些库为开发者提供了与STM32 微控制器的各种外设(如GPIO、UART、SPI、I2C 等)进行交互的API。

以下是一些常用的STM32 标准库函数,但请注意,随着STM32 HAL/LL 库的更新和版本变化,这些函数可能会有所不同或有所增减:GPIO:GPIO_Init(): 初始化GPIO。

GPIO_SetBits(): 设置指定的GPIO 位。

GPIO_ResetBits(): 清除指定的GPIO 位。

GPIO_WriteBit(): 写入指定的GPIO 位。

GPIO_ReadInputDataBit(): 读取指定的GPIO 输入位。

UART:UART_Init(): 初始化UART。

UART_SendData(): 通过UART 发送数据。

UART_ReceiveData(): 通过UART 接收数据。

UART_GetFlagStatus(): 检查UART 的某个标志是否被设置。

SPI:SPI_Init(): 初始化SPI。

SPI_SendData(): 通过SPI 发送数据。

SPI_ReceiveData(): 通过SPI 接收数据。

I2C:I2C_Init(): 初始化I2C。

I2C_StartAddressConfig(): 配置I2C 的启动地址。

I2C_MasterRequestConfig(): 配置I2C 的主请求。

I2C_MasterReceiveData(): 主模式下接收数据。

I2C_MasterTransmitData(): 主模式下发送数据。

中断:NVIC_Init(): 初始化NVIC (嵌套向量中断控制器)。

stm32库函数使用配置

stm32库函数使用配置

stm32 固件库V3.0以上的版本,main等源文件中不再直接包含stm32f10x_conf.h,而是stm32f10x.h,stm32f10x.h则定义了启动设置,以及所有寄存器宏定义,此文件中需要注意的有:使用V3.0以上版本固件库的方法如下:1.选择device(配置函数STM32F10x.h,具体配置方法如下)在STM32F10x.h中有如下代码:#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined(STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices *//* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices *//* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices *//* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices *//* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices *//* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices *//* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices *//* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */#endif该代码的是让用户根据自己所使用的芯片的存储器(flash)大小,选择相应的flash编程算法,如果用户使用的是大容量存储芯片(如STM32F103VCT6),则只需要将对应大大容量存储器前面的屏蔽符去掉即可,去掉后为:#define STM32F10X_HD /*!< STM32F10X_HD: STM32 High density devices */其它部分代码不变。

STM32各种函数的基本配置

STM32各种函数的基本配置

STM32各种函数的基本配置(功能是摄像头采集数据SD存储)/*#include "stm32f4_discovery.h"#include "stm32f4xx_conf.h"uint32_t Gb_TimingDelay;void Delay(uint32_t nTime);void main( ){SysTick_Config(SystemCoreClock / 1000); //设置systemtick 一毫秒中断 RCC->AHB1ENR |= 0x00000008; //使能GPIOD 时钟RCC->APB2ENR |= (1<<14); //使能syscfg 时钟GPIOD->MODER &= 0x00FFFFFF; //设置PD12,13,14,15 输出GPIOD->MODER |= 0x55000000;GPIOD->OTYPER &= 0xFFFF0FFF; //设置PD12,13,14,15 推挽输出GPIOD->OSPEEDR &= 0x00FFFFFF; //PD12,13,14,15 速度100mGPIOD->OSPEEDR |= 0xff000000;SYSCFG->CMPCR = 0x00000001; //使用IO 补偿单元,//当GPIO 速度超过50M 的时候要考虑使用此设置GPIOD->PUPDR &= 0x00FFFFFF; //PD12,13,14,15 无上拉无下拉GPIOD->BSRRH = 0xf000; //reset register GPIOx_BSRRH, write only //set register GPIOx_BSRRL, write onlywhile(1)GPIOD->BSRRH = 0xf000;GPIOD->BSRRL = 0x1000;Delay(100);GPIOD->BSRRH = 0xf000;GPIOD->BSRRL = 0x1000<<1; Delay(100);GPIOD->BSRRH = 0xf000;GPIOD->BSRRL = 0x1000<<2; Delay(100);GPIOD->BSRRH = 0xf000;GPIOD->BSRRL = 0x1000<<3; Delay(100);}}void Delay(uint32_t nTime){Gb_TimingDelay = nTime;while(Gb_TimingDelay != 0);}void SysTick_Handler(void) {if (Gb_TimingDelay != 0x00) {Gb_TimingDelay--;}}*/#include "stm32f4_discovery.h" #include "stm32f4xx_conf.h" uint32_t Gb_TimingDelay;void Delay(uint32_t nTime); void main( ){SysTick_Config(SystemCoreClock / 1000); //设置systemtick 一毫秒中断//-------------------------------------GPIO_InitTypeDef GPIO_InitStructure;//Enable the GPIO_LED ClockRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);//Configure the GPIO_LED pinGPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD, &GPIO_InitStructure);//点亮这个灯GPIOD->BSRRL = GPIO_Pin_12;while(1){////GPIOD->ODR ^= GPIO_Pin_12;//GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); GPIO_ToggleBits(GPIOD, GPIO_Pin_12);//Insert a delayDelay(10);}}void Delay(uint32_t nTime){Gb_TimingDelay = nTime;while(Gb_TimingDelay != 0);}void SysTick_Handler(void){if (Gb_TimingDelay != 0x00){Gb_TimingDelay--;}}*//*#include "stm32f4_discovery.h"#include "stm32f4xx_conf.h"#include "stm32f4xx_rcc.h"uint32_t xiande=0;uint32_t Gb_TimingDelay;void Delay(uint32_t nTime);void main( ){//Configure the system clocksRCC_ClocksTypeDef RCC_Clocks;//SysTick end of count event each 10msSysTick_Config(SystemCoreClock / 1000); //设置systemtick 一毫秒中断//Initialize LEDs mounted on STM32F4-Discovery boardSTM_EVAL_LEDInit(LED4);STM_EVAL_LEDInit(LED3);STM_EVAL_LEDInit(LED5);STM_EVAL_LEDInit(LED6);//Turn on LED4 and LED5STM_EVAL_LEDOn(LED4);STM_EVAL_LEDOn(LED5);RCC_GetClocksFreq(&RCC_Clocks);xiande = RCC_Clocks.SYSCLK_Frequency;xiande = RCC_Clocks.HCLK_Frequency;xiande = RCC_Clocks.PCLK1_Frequency;xiande = RCC_Clocks.PCLK2_Frequency;while(1){//Toggle LED3 and LED6STM_EVAL_LEDToggle(LED3); STM_EVAL_LEDToggle(LED6); //Insert a delayDelay(10);}}void Delay(uint32_t nTime) {Gb_TimingDelay = nTime; while(Gb_TimingDelay != 0); }void SysTick_Handler(void) {if (Gb_TimingDelay != 0x00) {Gb_TimingDelay--;}}*/#include "stm32f4_discovery.h"#include "stm32f4xx_conf.h"#include "stm32f4xx_rcc.h"/*定义USART6接受的数据存储变量*/ uint16_t usart6_get_data;uint32_t Gb_TimingDelay;void Delay(uint32_t nTime);void GPIO_Config(void);void USART_Config(void);void USART6_Puts(char * str); void NVIC_Config(void);void Delay(uint32_t nCount);void main(){/*在主函数main之前通过调用启动代码运行了SystemInit函数,而这个函数位于system_stm32f4xx.c”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//GPIO_Mode_IPU上拉输入 GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/**************************串口*****串口*****串口**********串口*********************************/
/* 判断HSE起是否振成功,是则进入if()内部 */
if(HSEStartUpStatus == SUCCESS)
{
/* 选择HCLK(AHB)时钟源为SYSCLK 1分频 */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/* 设置FLASH延时周期数为2 */
FLASH_SetLatency(FLASH_Latency_2);
/* 使能FLASH预取缓存 */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* 清除Systick计数器 */
SysTick_CounterCmd(SysTick_Counter_Clear);
/* 主频为72/8MHz,配置计数值为9000 * 1000可以得到1s定时间隔*/
SysTick_SetReload(9000 * 1000);
/* 失能Systick定时器 */
SysTick_CounterCmd(SysTick_Counter_Disable);
/* 清除Systick计数器 */
SysTick_CounterCmd(SysTick_Counter_Clear);
}
/*********************************GPIO端口功能设置*******************************/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
void Systick_Configuration(void)//Systick定时器设置
{
/* 失能Systick定时器 */
SysTi
/* 选择HCLK为Systick时钟源 */
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
/* 等待PLL成为SYSCLK时钟源 */
while(RCC_GetSYSCLKSource() != 0x08);
}
}
//*********************************Systick定时器设置*********************************************/
ErrorStatus HSEStartUpStatus;
/* 复位系统时钟设置*/
RCC_DeInit();
/* 开启HSE*/
RCC_HSEConfig(RCC_HSE_ON);
/* 等待HSE起振并稳定*/
HSEStartUpStatus = RCC_WaitForHSEStartUp();
/* 选择PCLK2时钟源为 HCLK(AHB) 1分频 */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* 选择PCLK1时钟源为 HCLK(AHB) 2分频 */
RCC_PCLK1Config(RCC_HCLK_Div2);
}
void Delay_Second(void)//Systick定时器定时一秒
{
/* 启动Systick计数 */
SysTick_CounterCmd(SysTick_Counter_Enable);
/* 等待Systick计数至0 */
while(SysTick_GetFlagStatus(SysTick_FLAG_COUNT) == 0);
void GPIO_Configuration(void)//串口GPIO口功能设置
{
/* 定义 GPIO 初始化结构体 GPIO_InitStructure */
GPIO_InitTypeDef GPIO_InitStructure;
/* 设置USART1的Tx脚(PA.9)为第二功能推挽输出模式 */
void GPIO_Configuration(void)//设置各GPIO端口功能
{
/* 定义GPIO初始化结构体 GPIO_InitStructure */
GPIO_InitTypeDef GPIO_InitStructure;
/* 设置 GPIOA.4 为推挽输出,最大翻转频率为50MHz*/
USART_ART_Parity = USART_Parity_No ;
USART_ART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx;
GPIO_Init(GPIOA , &GPIO_InitStructure);
}
void USART_Configuration(void)//串口1设置
{
/* 定义USART初始化结构体 USART_InitStructure */
USART_InitTypeDef USART_InitStructure;
GPIO_Init(GPIOA , &GPIO_InitStructure);
/* 设置USART1的Rx脚(PA.10)为浮空输入脚 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
/* 选择锁相环(PLL)时钟源为HSE 1分频,倍频数为9,则PLL输出频率为 8MHz * 9 = 72MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/* 使能PLL */
RCC_PLLCmd(ENABLE);
USART_ART_BaudRate = 9600;
USART_ART_WordLength = USART_WordLength_8b;
USART_ART_StopBits = USART_StopBits_1;
/* 等待PLL输出稳定 */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* 选择SYSCLK时钟源为PLL */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/***********************配置RCC寄存器组,使用PLL输出72MHz时钟并作为主时钟源***********************************/
void RCC_Configuration(void)//设置系统各部分时钟
{
/* 定义枚举类型变量 HSEStartUpStatus */
USART_Init(USART1 , &USART_InitStructure);
/* 使能USART1 */
USART_Cmd(USART1 , ENABLE);
}
/********************************************************************************************/
/*
* 波特率为9600bps
* 8位数据长度
* 1个停止位,无校验
* 禁用硬件流控制
* 禁止USART时钟
* 时钟极性低
* 在第2个边沿捕获数据
* 最后一位数据的时钟脉冲不从 SCLK 输出
*/
相关文档
最新文档