本帖最后由 云中怪 于 2016-10-10 10:21 编辑
小弟最近在一个项目中遇到一个问题,我出现问题的是如下代码
__HAL_RCC_AFIO_CLK_ENABLE();
__HAL_AFIO_REMAP_I2C1_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_I2C1_CLK_ENABLE();
__HAL_AFIO_REMAP_SWJ_NOJTAG();
BSP_OSTickInit(); 在之前的初始化里已经使用。为了排除其他因素干扰,我在主任务里只写了这一段I2C硬件的一部分初始化。(我的主任务只有打印时间一个事情)。仿真运行开始后可以运行,然后退回到main再运行,就直接导致芯片reset了,下不进程序了,需要把BOOT0 和BOOT1一起接地,用JFLASH重新擦除才能再次下载。
我的硬件I2C需要的引脚是PB8 PB9(remap之前默认PB6,PB7) 而我使用__HAL_AFIO_REMAP_SWJ_NOJTAG();的原因是因为PA15 和PA4我需要使用(在使用SPI时候需要)所以,关闭JTAG,打开SWD。但是问题就是在这儿,我使用了SWJremap就出现了芯片锁死无法下载程序的问题,但是I2C硬件引脚remap和这个SWJ引脚REMAP不同时使用,分别使用的时候就不会出现问题。求大神们指教
|