一、重映射与部分映射问题
参考相应用户手册;
打开:I/O 重映射功能和调试配置;
AFIO 端口配置寄存器 0(AFIO_PCF0);
AFIO 端口配置寄存器 1(AFIO_PCF1);
【e.g】以定时器1的4个pwm通道为例
#define GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U) /*!< TIMER1 partial remapping */
#define GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U) /*!< TIMER1 partial remapping */
#define GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U) /*!< TIMER1 full remapping */
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOB);
rcu_periph_clock_enable(RCU_AF);
rcu_periph_clock_enable(RCU_TIMER1);
gpio_pin_remap_config(GPIO_TIMER1_FULL_REMAP, ENABLE);
通过宏等价的立即数赋值给bit9和bit8来区分该功能;
【reference】https://blog.csdn.net/Naunyang/article/details/126659540
二、TIMER1_CH0 and TIMER1_ETI 共用一个引脚,但不能同时使用。
这个需要参考例程中外部输入和pwm互补使能;
/*configure PA0(TIMER1 CH0) as alternate function*/
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);