野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8702|回复: 1

GPIO复用功能应该如何设置?

[复制链接]
发表于 2018-10-29 13:29:30 | 显示全部楼层 |阅读模式
一次试验中,要使用PA15作为普通IO口.后来发现它默认为JTAG接口,要做普通IO口使用,有两种方法
第一种方法:
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
AFIO->MAPR &=~  0X0f00000;
AFIO->MAPR  |= AFIO_MAPR_SWJ_CFG_DISABLE;

常量是这样定义的
#define AFIO_MAPR_SWJ_CFG_DISABLE            ((uint32_t)0x04000000)        /*!< JTAG-DP Disabled and SW-DP Disabled */

第二种方法:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

常量是这样定义的
#define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */


两个常量定义说明差不多,我第一次就是把前面的常量用在了第二种方法里面了,结果当然是不成功的.我知道这两种方法都是操作寄存器的,但我确始终没有弄明白,
也不知道它们是怎样工作的,请野火老师不吝指教.


回复

使用道具 举报

发表于 2018-10-29 13:45:51 | 显示全部楼层
   RCC_Configuration();
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);  
   
先配置RCC,后配置GPIO。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-10 17:37 , Processed in 0.028221 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表