历史上的今天
返回首页

历史上的今天

今天是:2025年03月12日(星期三)

正在发生

2020年03月12日 | STM32开发笔记68: keil中使用ST-Link不能成功下载的真实原因

2020-03-12 来源:eefocus

单片机型号:STM32F091RCT6


在STM32开发笔记67: 在keil中使用ST-Link不能成功下载的解决方法提到解决keil中使用ST-Link不能成功下载的一种方法,经仔细分析其实原因还在于程序上。


不能成功下载的程序中,包含如下程序,:


CInit::CInit(uint8_t mode)

{

//底层初始化

HAL_Init();

//GPIO时钟使能

  __HAL_RCC_GPIOA_CLK_ENABLE();

  __HAL_RCC_GPIOB_CLK_ENABLE();

__HAL_RCC_GPIOC_CLK_ENABLE();

__HAL_RCC_GPIOD_CLK_ENABLE();

  __HAL_RCC_GPIOE_CLK_ENABLE();

 

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.Pin = GPIO_PIN_All;

GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;

GPIO_InitStructure.Pull = GPIO_NOPULL;

 

HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); 

HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOE, &GPIO_InitStructure);

}


这些程序将在目标板初始化的时候调用,目的是将所有的引脚设置为GPIO_MODE_ANALOG,以降低功耗。仔细分析可以看出,这样设置后,也会将SW-DP相应的引脚设置为GPIO_MODE_ANALOG,这就是其不能成功下载的原因。虽然在STM32开发笔记67: 在keil中使用ST-Link不能成功下载的解决方法提到了一种解决方法,但这种方法仅适合程序下载,如果还希望能够进行仿真调试,是做不到的。


如何解决这一问题呢?可以参考下面的程序:


CInit::CInit(uint8_t mode)

{

//底层初始化

HAL_Init();

//GPIO时钟使能

#ifdef STM32F091xC

  __HAL_RCC_GPIOA_CLK_ENABLE();

  __HAL_RCC_GPIOB_CLK_ENABLE();

__HAL_RCC_GPIOC_CLK_ENABLE();

__HAL_RCC_GPIOD_CLK_ENABLE();

  __HAL_RCC_GPIOE_CLK_ENABLE();

#endif

#ifdef STM32F070x6

__HAL_RCC_GPIOA_CLK_ENABLE();

  __HAL_RCC_GPIOB_CLK_ENABLE();

  __HAL_RCC_GPIOF_CLK_ENABLE();

#endif

 

if (mode == 1)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.Pin = GPIO_PIN_All;

GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;

GPIO_InitStructure.Pull = GPIO_NOPULL;

#ifdef STM32F091xC

HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); 

HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOE, &GPIO_InitStructure);

#endif

#ifdef STM32F070x6

HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); 

HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);

HAL_GPIO_Init(GPIOF, &GPIO_InitStructure);

#endif

}

}


我们在进行初始化的时候可以传递参数,如果我们希望其低功耗运行,则传递参数1,其不再具有仿真功能;否则传递其它参数,可正常下载并仿真。

推荐阅读

史海拾趣

Connective Peripherals Pte Ltd公司的发展小趣事

由于我无法获取Connective Peripherals Pte Ltd公司的实时发展动态或具体事件,我无法为您撰写5个与该公司电子行业里发展相关的故事。然而,我可以为您概括性地描述Connective Peripherals Pte Ltd公司在电子行业中的发展概况,以便您了解该公司的基本情况和行业地位。

Connective Peripherals Pte Ltd自2016年成立以来,在电子行业里逐步崭露头角,成为一家备受瞩目的通信和仪器仪表产品供应商。该公司专注于基于USB、CAN和RS232/RS422/RS485接口的串行连接解决方案,凭借卓越的技术实力和创新能力,在行业中树立了良好的口碑。

随着科技的飞速发展,电子行业对高效、稳定的通信和仪器仪表产品需求日益增长。Connective Peripherals Pte Ltd紧跟行业趋势,不断推出创新产品,满足市场需求。从提供USB到串行接口连接的适配器板和电缆,到开发基于USB的示波器、数据记录器和逻辑分析仪等高端产品,Connective Peripherals Pte Ltd的产品线日益丰富,质量也逐步提升。

在市场竞争激烈的电子行业,Connective Peripherals Pte Ltd凭借其卓越的产品质量和完善的售后服务,赢得了众多客户的信赖和支持。该公司与多家知名企业建立了长期稳定的合作关系,产品远销海内外,为公司的快速发展奠定了坚实的基础。

此外,Connective Peripherals Pte Ltd还注重技术研发和人才培养。公司拥有一支高素质的研发团队,不断投入资金进行技术研发和创新,为公司的持续发展提供了强大的技术支持。同时,公司还积极开展人才培训和引进工作,吸引了一批优秀的行业人才加入公司,为公司的长远发展注入了新的活力。

总之,Connective Peripherals Pte Ltd在电子行业里凭借卓越的技术实力、丰富的产品线和完善的售后服务,逐步发展成为一家具有影响力的企业。未来,随着电子行业的不断发展,Connective Peripherals Pte Ltd有望继续保持其领先地位,为行业的进步和发展做出更大的贡献。

请注意,以上内容仅为概括性的描述,并未涉及具体的故事或事件。如果需要更详细的故事或事件描述,建议查阅相关的行业报告、公司年报或新闻报道,以获取更准确和具体的信息。

ARCOTRONICS公司的发展小趣事

随着全球环保意识的不断提高,ARCOTRONICS公司积极响应绿色发展的号召,致力于推动电子行业的可持续发展。公司采用环保材料和节能技术,减少生产过程中的环境污染和能源消耗。同时,公司还积极参与社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其赢得了更多的商业机会。

这些故事虽然基于虚构,但它们反映了电子行业中公司发展的普遍规律和趋势。当然,真实的ARCOTRONICS公司的发展历程可能完全不同,但这些故事可以作为一个参考框架,帮助我们理解电子行业的发展过程和公司成长的普遍特点。

AF International公司的发展小趣事

随着国内市场的逐渐饱和,AF International开始寻求海外市场的拓展。公司派遣专业的销售团队前往欧美、东南亚等地区,与当地企业建立合作关系,推广自己的产品。同时,AF International还积极参与国际电子展会,展示公司的最新技术和产品,吸引了众多国际客户的关注。通过不断的努力,AF International成功打开了海外市场,实现了国际化发展的目标。

ETL semiconductor公司的发展小趣事

英特尔(Intel)的成立与发展与微处理器的发明密不可分。在20世纪70年代初,英特尔的工程师们开始研发一种能够将计算机的中央处理器(CPU)集成到单一芯片上的技术。经过数年的努力,他们成功推出了世界上第一款微处理器——Intel 4004。这一创新不仅改变了计算机行业,也为英特尔的崛起奠定了坚实基础。

C&K Switches公司的发展小趣事

随着公司规模的扩大,C&K开始在全球范围内进行布局。它在中国、法国、越南、德国和印度等地设立了生产基地,这些工厂不仅提高了生产效率,还使得C&K能够更好地服务全球客户。同时,C&K的产品线也不断扩展,覆盖了消费类、工业类和汽车类等多个领域。此外,C&K还支持定制化开发,能够满足不同客户的特殊需求。这种全球布局和业务拓展使得C&K在电子行业中获得了广泛的认可和好评。

CP Technology Inc公司的发展小趣事

在快速发展的同时,CP Technology Inc始终关注环保和可持续发展。公司积极推广绿色生产技术,减少能源消耗和环境污染。同时,公司还参与了多项环保公益活动,倡导社会各界共同关注环保问题。这种环保理念不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

以上五个故事是基于电子行业发展的普遍趋势和可能事件虚构的,旨在展示一个电子公司可能的发展历程。每个故事都围绕不同的主题展开,但都突出了公司在技术创新、战略合作、全球化布局、品质管理和环保理念等方面的努力和成就。这些故事虽然是虚构的,但所蕴含的发展理念和策略对于现实中的电子公司来说也具有一定的借鉴意义。

问答坊 | AI 解惑

双机无线通信的东东

用单片机实现的双机无线通信,有仿真结果的,资料很全!…

查看全部问答>

各位坛友,下月我们工控版块讨论专题技术是啥?请大家发言

大家选个下月讨论的题目。目标让大家每天技术有提高!…

查看全部问答>

求:wince或者winmobile上浏览jpeg2000图片的工具

RT. 一直没有找到,恳请知道的XDJM告知一下,谢谢。…

查看全部问答>

AT91新片开发U盘读写的一些小问题

   最近在做一个课题,用at91sam7x256的芯片做一个U盘读写程序,IAR平台开发,有一个可运行程序,但是实际操作中有一些问题,做课题的板子自带FLASH是32M内存,但是程序只对板子的内部FLASH做读写,所以现在可用大小只有200多K,如何修改 ...…

查看全部问答>

XIP和HIVE注册表不能同时工作问题请教?

平台:2450+WINCE500 FLASH:三星MLC NAND FLASH 问题描述: 不用HIVE注册表时,XIP可以运行,待改成HIVE注册表后,串口信息如下: ---------------------------------------- [OEMIO:INF]  + IOCTL_HAL_POSTINIT [OEMIO:INF]  ...…

查看全部问答>

调用API如何刷新另一窗口的RECT

正在写一个SIP的程序。 遇到了这样一个困难。 首先在生成SIP软面板的时候,创建了一个窗口,得到句柄hwndsip。 我可以在这个面板上直接TextOut就输出了文本,直接InvalidateRect就可以将文本清除掉,在同一窗口下做这样的一系列操作都没什么问题 ...…

查看全部问答>

用SOAP调用WEB SERVICE问题

请问各位老大: 使用SOAP调用WEB SERVICE时调用mssoapinit函数的时候返回错误信息查看msdn是参数不对代码如下: ISOAPClient *pSoapClient; ::CoInitializeEx(NULL,COINIT_MULTITHREADED); HRESULT hr = CoCreateInstance(CLSID_SoapClient,NUL ...…

查看全部问答>

求助:用UltiBoard 做出来的PCB出现蓝色

刚做了一个MEGA8的项目,纯粹是爱好,很不专业。用UltiBoard 做出来的PCB图,PAD位置有的出现蓝色,有的刚无。不知道什么原因,应该在哪里设置?请高手指教,多谢!…

查看全部问答>

dma存储器到存储器模式,通道选几??

请教版主,dma 存储器到存储器模式 运行DMA_Init()函数, 里面的通道选几?? 手册里可有说? 我做的实验是选几号通道都行!…

查看全部问答>

09年 无线环境监测的题目 求助!!!thx~~~

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 09年 无线环境监测的题目 看以前的论文中有一个用反向串联的2个1N4148 和一个4.7mH电感串联一个5.6K电阻到单片机IO口 控制接收电路 不懂怎么个原理啊 有清楚原理的不? 两个1N4148反向串 ...…

查看全部问答>