首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32管教复用与重映射关系

STM32管教复用与重映射关系

概括一下:复用就是一个引脚有几个功能,1.做普通IO输入输出  2.其他外设的输入输出(比如I2C,TIM,SPI等等),这就是复用。
重映射就是将引脚功能重新定义到其他引脚,例如PA9是USART1-TX默认的管脚,但是现在PA9用做它用了,那可以将USART1-TX重新映射到PB6,当然这种映射不是随意的想映射到哪个脚就哪个脚,芯片内部已经固定了只能映射到固定的地方
MCU复位后PA8的默认功能是普通IO管脚,我想将它设为TIM1的PWM-CH1复用输出,如下图,通过设置TIM_REMAP[1:0]寄存器,可以实现(没有重映射)(部分重映射)(完全重映射)三种映射
1 void TIM1_PWM_Init(u16 arr,u16 psc)
2 {
3 //
4 RCC->APB2ENR"=1<<11; //开启TIM1定时器
5 GPIOA->CRH&=0XFFFFFFF0; //清除PA8
6 GPIOA->CRH|=0X0000000B; //设置PA8为频率最大50MHZ复用推完输出模式
7
8 TIM1->ARR=arr; //设置计数器自动重装值
9 TIM1->PSC=psc; //预分频器设置
10
11 TIM1->CCMR1|=7<<4; //CH1 PWM2模式
12 TIM1->CCMR1|=1<<3; //CH1预装载使能
13 TIM1->CCER|=1<<0; //OC1输出使能
14 TIM1->BDTR|=1<<15; //MOE主输出使能
15
16 TIM1->CR1=0x0080; //ARPE使能
17 TIM1->CR1|=0x01; //使能定时器1
18 }
返回列表