新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2018-2-28
- 在线时间
- 1 小时
|
5金钱
STM32F103的定时器2部分映射1后的PA15和JTDI冲突,现在想“JTAG禁用,SWD保留,定时器2复用”。
查看手册如下:
所以设置:
/*** 依次开启AFIO/GPIOA/TIM2时钟 ***/
RCC->APB2ENR|=1<<0;
RCC->APB2ENR|=1<<2;
RCC->APB1ENR|=1<<0;
/*** 配置SWJ_CFG[2:0] = '010' ***/
AFIO->MAPR &= ~(1<<26);
AFIO->MAPR |= (1<<25);
AFIO->MAPR &=~(1<<24);
/*** TIM2_REMAP[9:8] = '01' ***/
AFIO->MAPR&=~(1<<9);
AFIO->MAPR|=(1<<8);
最后,AFIO->MAPR的值为0x02000100。
此时“SWD下载功能被禁用,定时器2复用成功”。并没有得到期望的“JTAG禁用,SWD保留,定时器2复用”。
然而,使用ST提供的函数:
/*** 依次开启AFIO/GPIOA/TIM2时钟 ***/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
/*** 配置JTAG禁用,SWD保留 ***/
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
/*** 定时器2部分重映射1 ***/
GPIO_PinRemapConfig( GPIO_PartialRemap1_TIM2, ENABLE);
最后,AFIO->MAPR的值为0x0F000100。
此时得到了期望的“JTAG禁用,SWD保留,定时器2复用”。
但是 AFIO->MAPR 的值为 0x0F000100 表明 SWJ_CFG[2:0] = '111',手册上写的是“其它组合:无作用”。
新手小白,初入STM32,求各位大大指点,多谢啦~
|
|