己最近做了一块板子。stm32rbt6,第一个程序下载进去后发现LED灯闪耀,阐明程序现已正常运转。但第2次添加了几段代码后,再从头运用jlink下载,总提示 no device found还有emulator has been changed or 什么什么,然后开端找原因。更新jlink驱动,jlink是盗版的认为它坏了呢,但是在debug里却能找到他的sn号阐明他是好的,网上说跟stm32的BOOT0 和boot1的接法有联系,通过重复检查材料发现BOOT0是在接地的时分,而BOOT1三种状况恣意的情况下程序都是从内部flash里开端运转的,而且此刻用jlink下载是没有问题的,我也考证了神州1号stm32的开发板,人家也是这么接的,公司的产品也是这么做的,为什么我的就有问题呢?
回过头来想了想,公司产品运用stlink下载的,莫非跟着有关,我在debug里改成swo,成果居然能下载成功,我再从头测验jlink下载仍是呈现上述问题。
网友说是或许程序禁用了jlink的功用,不计其数的代码我开端寻觅,总算在某一个初始化的函数中找到了这句话
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);将他屏蔽掉,问题解决,
看来跟驱动无关,跟版别无关,硬件只需BOOT0接地,boot1恣意都没问题。