PWM配置流程
1.理解电路原理图
TIM14_CH1(TIM14 – APB1 16位 84MHZ) LED0连接在PF9,低电平灯亮;高电平,灯灭
2.使能定时器14和相关IO口时钟。
使能定时器14时钟:RCC_APB1PeriphClockCmd();
使能GPIOF时钟:RCC_AHB1PeriphClockCmd ();
3.初始化IO口为复用功能输出。 GPIO_Init();
4.GPIOF9复用映射到定时器14 GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);
5.初始化定时器:ARR,PSC等: TIM_TimeBaseInit();
6.初始化输出比较参数: TIM_OC1Init();
7.使能预装载寄存器: TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);
8.使能自动重装载的预装载寄存器允许位 TIM_ARRPreloadConfig(TIM14,ENABLE);
9.使能定时器。
10.不断改变比较值CCRx,达到不同的占空比效果: TIM_SetCompare1();
串口配置流程
1.理解电路原理图 PA9 ---- USART1_TX PA10 ---- USART1_RX
2、 串口时钟使能,GPIO 时钟使能。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE);
3、设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
4、GPIO 初始化设置:要设置模式为复用功能。 GPIO_Init(GPIOA,&GPIO_InitStruct);
5、串口参数初始化:设置波特率,字长,奇偶校验等参数。 USART_Init(USART1,&USART_InitStruct);
6、开启中断并且初始化 NVIC,使能中断(如果需要开启串口中断才需要这个步骤)。NVIC_Init(&NVIC_InitStruct);
7、设置 允许接收数据中断 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
8、 使能串口。 USART_Cmd( USART1, ENABLE);
9、编写中断处理函数:函数名格式为 USARTx_IRQHandler(x 对应串口号)。
10、接收数据 uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
11、发送数据函数 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);