您的位置 首页 IOT

stm32 怎样开释pa15,pb3,pb4作为gpio口运用

当STM32引脚不够用时,可以分配JTAG/SWD的引脚作为GPIO口使用。查看数据手册的引脚定义可以看到,PA15引脚复位后的主要功能为JTDI…

STM32引脚不行用时,能够分配JTAG/SWD的引脚作为GPIO口运用。

检查数据手册的引脚界说能够看到,PA15引脚复位后的主要功能为JTDI,PB3为JTDO,PB4为JNTRST,如果把这些引脚作为一般引脚运用时,需求进行重映射。
经过设置复用重映射和调试I/O装备寄存器(AFIO_MAPR)的SWJ_CFG[2:0]位,装备为“启用SW-DP,封闭JTAG-DP”来开释PA15(JTDI), PB3(JTDO), PB4(NJTRST)引脚。详见中文参考手册V10.2版别p118 表35 调试端口映像。
库文件中几个相关的宏界说分别为:
#defineGPIO_Remap_SWJ_NoJTRST ((uint32_t)0x00300100) /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */ // 彻底SWJ(JTAG-DP + SW-DP),但没有JNTRST
#defineGPIO_Remap_SWJ_JTAGDisable((uint32_t)0x00300200) /*!< JTAG-DP Disabled and SW-DP Enabled */ // 封闭JTAG-DP,启用SW-DP
#defineGPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */ // 封闭JTAG-DP,封闭SW-DP
别的,留意PB3的脚注,“I/O口只可在不运用异步盯梢时运用”,详见中文参考手册V10.2版别p748 29.16.3 调试MCU装备寄存器。
DBGMCU_CR寄存器的bit7:5(TRACE_MODE[1:0]和TRACE_IOEN),装备TRACE_IOEN=0,不分配盯梢引脚。见下表。
相关代码:
DBGMCU->CR = DBGMCU->CR & ~((uint32_t)1<<5); // 不分配盯梢引脚,开释PB3
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); // 使能复用时钟和引脚GPIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); // 切换到SWJ调试,开释PA15,PB4, PB3

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/254980.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部