刚到手一块stm32f103c8t6的板子,刚好最近在用stm32cube,直接用cube配置了一个led灯闪烁的工程,用keil+stlink下载进去一切正常,用的SWD模式。
然后问题出现了,keil不识别板子了,options->debug里面stlink 的setting界面也找不到目标,SW device是空的。
最开始一度认为可能是硬件错误,排除了接线、驱动错误后(因为第一次下载是成功的),后来发现在按住reset后进去setting是可以识别的,同样按住reset松手一瞬间是可以download程序的,想到可能是程序的问题。
原因:在stm32cube配置工程中,如图sys下的debug选择Serial Wire(SWD用的4根线)
sys->debug默认是没有配置的,对应的keil工程在msp文件内 HAL_MspInit(void)函数最后是把调试关掉的,以前使用的Jlink,ulink和nucleo自带的stlink的时候没有遇到,也都没有考虑到这个问题,将配置改过来重新生成编译下载就可以了。
关键字:stm32 keil stlink 不识别问题
引用地址:
stm32用keil+stlink不识别问题
推荐阅读最新更新时间:2024-11-16 20:26
STM32之六独立看门狗
单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生,在一定的时间内(通过计数器)没有喂狗信号输入给看门狗则表示MCU出现问题,自动会给处理器发送复位信号,是MCU重新启动,是系统正常运转。 STM32的独立看门狗有内部的专门40KHz低速时钟驱动,即使主时钟发生故障,它仍然有效。看门狗时钟十一个内部RC时钟,并不是准确的40KHz,而是在30~60KHz之间的变化时钟,估算时间的时候以40KHz来计算。 第一步,首先取消寄存器写保护,我们利用库函数的IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);来实现,
[单片机]
STM32分散加载文件
通过使用分散加载机制,可以为链接器指定映像的内存映射。分散加载为您提供了对映像组建分组和位置的全面控制。分散加载可以用于简单映像,但它通常仅用于具有复杂内存映射的的映像,即多个区在加载和执行时分散在内存映射中。 加载域:就是编译之后得到的二进制文件烧写到rom中的这一段区域。包括只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。 执行域:程序执行时的区域。比如:没有变动还是在ROM中RO段;被移到了RAM中的RW段和ZI段。 先看一下分散加载文件的内容: LR_IROM1 0x0800
[单片机]
STM32内部RAM在线调试配置方法及详细说明
1、 写在前面 本文主要讲述的内容:基于Keil开发工具下,STM32内部RAM在线调试配置方法,以及每一项配置的详细说明。 让程序运行在RAM中调试代码有两优点:1.速度快;2.减少对芯片FLASH读写次数,增加芯片寿命。 本文基于ST公司Cortex-M内核的STM32来讲述其配置方法,其实也适用于其他公司(如:TI、NXP等)的Cortex-M芯片,原理都是一样的。 第二点在本文中的作用也很大,就是使用了中断功能。由于RAM调试会牵涉到向量表,中断功能就会使用到向量表,如果没有配置正确,这里就不会响应中断,或者出错。 2、RAM调试配置方法 本节主要讲述配置方法的过程,为什么这么配置,以及配置的原理将会在下一章节讲述。
[单片机]
STM32:基本定时器详解
一、基本定时器介绍 在STM32中,基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元,提供16位的计数,能计数0~65535。基本定时器除了计数功能以外,还能输出给DAC模块一个TRGO信号。基本定时器框图如下: 二、时基单元介绍 STM32的所有定时器都具备时基单元,时基单元的功能就是简单的计数,即计数时钟源TMxCLK的脉冲个数,这个时钟源来至APB1总线。高级和通用定时器还可以使用其他的时钟源进行计数,在高级定时器和通用定时器中会详细介绍。在基本定时器框架中可知时基单元包含如下三个部分: 1.ARR 自动重装载寄存器 2.CNT 计数器 3.PSC 预分频器 基本定时器的定时(计数)功能配置
[单片机]
基于STM32芯片的一款智能台灯
前段时间参加了全国大学生智能互联创新大赛,我们队伍经过半个月的努力做了一款智能台灯,特分享出来供大家学习。 智能台灯侧面图 智能台灯整体图 智能台灯俯视图 作品简介: 随着时代的进步人们对灯的要求也越来越多,台灯是普遍的家用照明设备之一,为了结合国家的节能环保计划以及产品人性化的要求,我们团队研发出了一种多功能用途台灯,将智能与节能环保最大化结合。该智能台灯基于多种模块的相互配合,融入了团队智能环保的设计理念,以及人性化的宗旨使“她”可以更加贴心的照顾我们对灯光的需求。智能灯光调节的设计使她拥有最大化保护用户视力的强大功能,通过我们团队特制的手机APP用户可以随心所欲的对她进行远程监控,本智能台灯强大的外设
[单片机]
2023年 STM32中国峰会开启全新篇章
今年的STM32中国峰会已经圆满结束,我们诚挚感谢各位的持续支持和关注。下面就让一组关键数据带我们回顾本届峰会的精彩历程! • 2,600多名观众亲临2023 STM32中国峰会现场 • 75,000多名观众在线观看了2023 STM32中国峰会 • 截至5月17日,共收集2,433张直播图片,浏览量高达341,495次 • 围绕边缘AI&信息安全、连接、生态系统&开发者优先计划以及智能工业&高性能MCU/MPU四大主题,共计29场主题演讲和28场研讨会在峰会现场举办 • 现场展示200多款产品, 覆盖边缘AI,网络连接,信息安全,生态系统,开发者优先解决方案和STM32 垂直应用等广泛领域 • 11
[单片机]
STM32USART串口库函数介绍之USART_Init
本文将介绍USART串口的库函数,总的来说有以下函数体: ※ USART_Init函数:初始化所使用的串口外设 ※ USART_Cmd函数:使能或者失能USART外设 ※ USART_ITConfig函数:使能或者失能指定的USART中断 ※ USART_SendData函数:通过外设USARTx发送单个数据 ※ USART_ReceiveData函数:返回USARTx最近解释接收到的数据 ※ USART_GetFlagStatus函数:检查指定的USART标志位设置与否 ※ USART_ClearFlag函数:清楚USARTx的待处理标志位 ※ USART_GetITStatus函数:检查指定的U
[单片机]
51单片机Keil C 延时程序
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要: mov r0, #09h loop: djnz r0, loop 51单片机的指令周期是晶振频率的1/12,也就是1us一个周期。mov r0,
[单片机]