你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

KEIL + SWD +JLINK 仿真问题

[复制链接]
yifabandaoti 提问时间:2018-7-17 15:33 /




刚接触STM32F407, 在下载和在线调试阶段碰到了问题,请求帮助,具体如下:


1、第一次烧写很顺利,程序烧写进去,好像也可以进行在线调试;
2、第二次烧写时就不能烧写进去,提示“No Cortex-M  SW device found”.  经过寻求帮助得以解决,方法如下:
        (1)B0拉高,按一下复位按钮;(2)B0拉低, 点击烧写,即可烧写进去。
          原因可能是SWDIO和SWDCLK被设置为IO口了, 但是我下载一个什么都没有的空程序若不按照上面的方法也是             写不进去。即使成功下载了,按下KEIL的仿真按钮,也是提示:No Cortex-M  SW device found”。 说明SWD和芯片的链接又断开了。


3、有成功使用SWD+JLINK进行仿真的麻烦帮助下,谢谢。
收藏 评论16 发布时间:2018-7-17 15:33

举报

16个回答
radio2radio 回答时间:2018-7-17 15:46:07
原因就是SWDIO和SWDCLK被设置为IO口。库函数里面应该有,设置一下就可以了。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

yifabandaoti 回答时间:2018-7-17 15:51:07
radio2radio 发表于 2018-7-17 15:46
原因就是SWDIO和SWDCLK被设置为IO口。库函数里面应该有,设置一下就可以了。

我也设置了,但是没有起作用,不知道是不是代码写的不对,请看如下:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能PA的时钟
  

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//弱上拉
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化

GPIO_PinAFConfig(GPIOA,GPIO_PinSource13,GPIO_AF_SWJ); //复用
GPIO_PinAFConfig(GPIOA,GPIO_PinSource14,GPIO_AF_SWJ); //复用
radio2radio 回答时间:2018-7-17 15:55:40
前面的GPIO设置错误,应该不需要,或者设置成输入高阻模式。你试一试。
回答时间:2018-7-17 16:09:45
默认是开启的,楼主不要对这两个引脚丛操作即可。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

yifabandaoti 回答时间:2018-7-17 16:11:49
安 发表于 2018-7-17 16:09
默认是开启的,楼主不要对这两个引脚丛操作即可。

我把main里的东西全部删除,烧写进去,然后点仿真按钮也是不行的,提示 no cortex-m sw device found
yifabandaoti 回答时间:2018-7-17 16:16:02
radio2radio 发表于 2018-7-17 15:55
前面的GPIO设置错误,应该不需要,或者设置成输入高阻模式。你试一试。

       
改了如下代码,也不行
GPIO_InitTypeDef  GPIO_InitStructure;
       
               
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//ʹÄÜGPIOAʱÖÓ
  

  //GPIOFB3,4,5³õʼ»¯ÉèÖÃ
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14;//PA13~14¸´Óù¦ÄÜÊä³ö       
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//¸´Óù¦ÄÜ
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;//
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//
  GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource13,GPIO_AF_SWJ); //PA13¸´ÓÃ
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource14,GPIO_AF_SWJ); //PA14¸´Ó
回答时间:2018-7-17 16:19:56
不要对这两个引脚进行初始化设置,进入boot模式。重新烧写程序,再测试。
radio2radio 回答时间:2018-7-17 16:21:06
yifabandaoti 发表于 2018-7-17 15:51
我也设置了,但是没有起作用,不知道是不是代码写的不对,请看如下:
RCC_AHB1PeriphClockCmd(RCC_AHB1Pe ...

最后面的两行remap设置,需要打开remap的时钟,F103是这样的:
RCC->APB2ENR |=  RCC_APB2ENR_AFIOEN;
F407的,你要查一查。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

radio2radio 回答时间:2018-7-17 16:38:49
yifabandaoti 发表于 2018-7-17 16:16
改了如下代码,也不行
GPIO_InitTypeDef  GPIO_InitStructure;
       

后面的两行可能不对,我F103是设置寄存器,而不是设置GPIO,像这样:
  RCC->APB2ENR |=  RCC_APB2ENR_AFIOEN;
  AFIO->MAPR   |=  AFIO_MAPR_SWJ_CFG_ENABLE;
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版