宜黄住房和城乡建设部网站,电子政务与网站建设 总结,高端品牌车有哪些,下沙做网站的公司STM32F1系列
程序中在使用到JTAG、SWD的某个IO 时#xff0c;需要禁用掉相关调试方法后#xff0c;再配置相应的IO方式。在需要相应的接口配置前使用这些代码。 对于F1系列#xff0c;调用函数进行专门的禁止。 标准库配置方式#xff1a;
RCC_APB2PeriphClockCmd(RCC_A…STM32F1系列
程序中在使用到JTAG、SWD的某个IO 时需要禁用掉相关调试方法后再配置相应的IO方式。在需要相应的接口配置前使用这些代码。 对于F1系列调用函数进行专门的禁止。 标准库配置方式
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); //使能相应接口的时钟以及RCC_APB2Periph_AFIOGPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//完全禁用SWD及JTAG GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //禁用JTAGHAI库配置方式 __HAL_RCC_AFIO_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE(); //__HAL_RCC_GPIOF_CLK_ENABLE(); ///* JTAG-DP Disabled and SW-DP Disabled */__HAL_AFIO_REMAP_SWJ_DISABLE(); //完全禁用SWD及JTAG __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)配置成输入或者输出就行
GPIO_Mode_IN 0x00, /*! GPIO Input Mode */
GPIO_Mode_OUT 0x01, /*! GPIO Output Mode */
GPIO_Mode_AF 0x02, /*! GPIO Alternate function Mode */
GPIO_Mode_AN 0x03 /*! GPIO Analog Mode */STM32L151系列
类似STM32F4系列