下面设置复用功能:
1.首先需要enable外设所对应的时钟(外设功能,如USART)与所用pin所对应的时钟(例如GPIOA.9,GPIOA.10)。这样,外设功能和pin才能在cpu控制下在正确的事件做正确的事情。
USART的时钟为APB2,而GPIOA.9,GPIO.10为AHB2,USART用哪个时钟,可参看STM32用户手册内有关clock register(RCC)章节,可搜索USART找到。
因此用以下两个函数enable对应的时钟:
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //enable GPIOA clock //
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //enable USART1 clock//
官方提供五个用来enable GPIO和外设clock的函数:
- void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState);
- void RCC_AHB2PeriphClockCmd(uint32_t RCC_AHB2Periph, FunctionalState NewState);
- void RCC_AHB3PeriphClockCmd(uint32_t RCC_AHB3Periph, FunctionalState NewState);
- void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
- void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
到目前为止可知,APB用于外设,AHB用于GPIO,其中AHB频率大于APB频率,有错再改。
|