STM32F1,F4,L1系列禁止JTAG和SW引脚方法

打印 上一主题 下一主题

主题 548|帖子 548|积分 1644

STM32F1系列

步调中在使用到JTAG、SWD的某个IO 时,必要禁用掉相关调试方法后,再配置相应的IO方式。在必要相应的接口配置前使用这些代码。
对于F1系列,调用函数举行专门的禁止。

尺度库配置方式:
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE);         //使能相应接口的时钟,以及RCC_APB2Periph_AFIO
  2. GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//完全禁用SWD及JTAG
  3. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);     //禁用JTAG
复制代码
HAI库配置方式:
  1.         __HAL_RCC_AFIO_CLK_ENABLE();
  2.   __HAL_RCC_GPIOB_CLK_ENABLE();                   //
  3.         __HAL_RCC_GPIOF_CLK_ENABLE();                   //
  4.        
  5. /* JTAG-DP Disabled and SW-DP Disabled */
  6.   __HAL_AFIO_REMAP_SWJ_DISABLE();                        //完全禁用SWD及JTAG
  7.         __HAL_AFIO_REMAP_SWJ_NOJTAG();                                //禁用JTAG
复制代码
在禁用掉相应的接口方式后,即不能再使用这种方式下载步调了。因此会出现报错:“”RAM check failed at :“”大概“NO M-Cortex”.
碰到这个状况,必要再次下载步调,有如下三种办法:

  • 如果只禁用的JTAG,可以用SWD模式下载步调进去。
否则只能后续两种,但总体思路都是先不让代码运行起来,不去禁用JTAG及SWD,这时候下载步调。

  • 采用人工复位,按钮或短接。在步调下载举行到复位的这一步,完成复位动作。
  • 修改启动模式:拉高BOOT0->重新上电->步调不能运行->下载步调-> 拉低BOOT0->重新上电->步调正常运行。
STM32F4系列

对于F4系列,系统上电后,全部引脚都是AF0复用,F4系统共支持AF0-AF15种复用。
具体到每种复用,查看数据手册就行,比如这个:

对于F4系列,没有专门的禁止函数了,用户只要不是将这几个调试引脚配置成默认的AF0复用即可。
因为系统上电,这几个引脚默认是配置成AF0复用,且用于JTAG/SW调试模式。
● PA15: JTDI 处于上拉状态
● PA14: JTCK/SWCLK 处于下拉状态
● PA13: JTMS/SWDAT 处于下拉状态
● PB4: NJTRST 处于上拉状态
● PB3: JTDO 处于浮空状态

用户要使用这些引脚做通用IO,只要不配置复用模式即可(GPIO_Mode_AF),配置成输入大概输出就行
  1. GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
  2. GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
  3. GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
  4. GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */
复制代码
STM32L151系列

类似STM32F4系列


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

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