说明: IAR环境版本 IAR ARM 6.30.0
1.swd使用jtag的4根线VCC,GND,JTMS,JTCK 注意 :必须将boot0=0,boot1=x
2.JLINK(20pin)的引脚对应引脚定义如下图
3.iar环境的设置
第一步:Options->Debugger->Setup选项中driver选择Jlink/J-TRAC
第二步: Options->Debugger->Download选项中我习惯选成verify download(其实不选也没关系)
对于use flash loader,这个选项的意思可能是用iar自带的flash loader去下载程序,不选时使用j-link去下载程序。
我试过选上这个但是下载从来没有成功过,可能还需要设置一些地址。没仔细研究其中的原理,如果哪位大神知道原因请告诉我一声。
第三步:选择interface为swd如图
关键字:stm32 程序下载 调试之swd
引用地址:
stm32程序下载调试之swd
推荐阅读最新更新时间:2024-03-16 16:22
基于STM32单片机的RFID和云平台仓库管理系统设计
一.系统设计 通过STM32单片机进行主控,通过RFID检测刷卡状态 ,光电检测模块检测存货区域,检测到的数据通过ESP01S上传到上位机端进行显示。 图1 系统框图 二.硬件设计 本设计所采用的STM32F103C8T6是以Cortex-3为核心的单片机,使用光电模块进行光电检测,用RFID识别感应并解读信息,检测到的数据会通过串口发送到ESP01S,再发送到上位机端进行显示和监控。 图2 硬件电路 三.软件设计 系统在完成系统初始化后就开始通过IC卡感应模块检测存货与取货状态,检测到的信息通过ESP01S通信模块上传,通过光电识别模块检测判断存货区域。其中若检测到取货刷卡且在区域一,则显示区域1货物减1,否则显示区域2
[单片机]
基于stm32的8m晶振不起振的原因解析
STM32板子突然出了大问题。所以延时函数都变慢9倍。 我的延时函数是用的SysTick函数精确延时。 因为第一步需要初始化时间,一般8M的晶振我们都要初始化72.因为系统一般都是倍频9倍的。 但是今天貌似是系统没有倍频9倍。 所以才导致整体时间是原来9倍长。 后来发现倍频是在 RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) 成功后才设置的如果HSEStartUpStatus不等于1那么就不会执行倍频。也就是说只能使用内部自带的8M晶振了。 后来单步调,发现确实是这个HS
[单片机]
stm32之电源管理(实现低功耗)
前言:STM32F10xxx系列产品都有电源管理模块,芯片功耗会影响到一个产品的续航能力;比如在一些终端传感器场合里,为了减轻后期的维护投入,要求长期工作时间较长,更需要合理的芯片功耗管理。芯片自带几种运行模式,包括正常模式、睡眠模式、停止模式、待机模式。越往后,芯片的功耗越低,但能执行功能就越少。低功耗的电源管理策略就是在芯片不需要对外界响应的时候进入低功耗模式,而当外界条件满足的时候,退出低功耗模式(唤醒),正常执行处理工作。下面对其模式之间的转换和各个模式下的芯片内部的运转情况等一探究竟。 写代码前要先了解芯片的特性及工作原理,难免会先阅读一些长长的文档。下面核心讲解一些要点。 1.硬件原理 下图是芯片的电源框架:
[单片机]
stm32之ADC oled显示
六路adc的显示结果 ** 一些基本的代码: ** 初始化ADC //初始化ADC void Adc_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, EN
[单片机]
STM32 DMA 应用之(二) DMA 串口 数据传输--发送
一、DMA请求映像 由此我们知道如果需要使用串口1的发送功能需要用到的是DMA1_Channel4 使用串口1的接收功能需要用到的是DMA1_Channel5 二、怎样配置软件来使用DMA 把数据传到串口发送? (1)配置dma /************************************************************************** *函数名称: Dma_Init *功能描述: 利用DMA 把内存的数据传输到串口发送达到高速传输的目的 * *输入参数:无 *返回值 :无 *其他说明:无 *当前版本:v1.0
[单片机]
对于stm32GPIO口的一些补充
1.对于stm32的简单认识 1.stm32表示cortex-m内核的32位微处理器(MCU) 2.对于stm32的两种操作方法:操作寄存器和操作库函数 2-1:寄存器(register) 寄存器是信息储存的容器,在stm32中每一个寄存器是32位二进制组成,可以通过改变寄存器中的值来改变对stm32单片机的控制 3.stm32编程实际上就是对32位寄存器数据的修改; 2-2:库函数 ST公司的良心之作,可以缩短开发周期,实际上,也是对寄存器的操作,但是把一些方法进行了封装; 3.谈谈自己的看法吧:操作寄存器就像是对开手动挡汽车,操作库函数就像是开自动挡的汽车 2.关于推挽和开漏的简单认识 1.推挽(在一个三极管进行导通时,另外一
[单片机]
STM32_GPIO之按键输入
/* 名称:STM32_GPIO之按键输入 说明:这个实验是GPIO的输入功能。基本的思路和51单片机差不多。也是 操作相应的IO口,不过不同的是对于独立按键输入实验来说,51单片机是 需要一开始把待检测的IO口设置成高电平,然后检测其何时被拉低。而对 于STM32来说,其GPIO端口就可以设置成上拉输入,即不需要再人为的把对 应的对应的IO口设置成高电平,硬件电路会自动把对应端口引脚拉成高电 平。 还有一点关于条件编译要说的:这个ifndef… #endif 一般用在头文件中。书上说为了防止重复编译。就我目前了解的来看,在实际应用中,如果在两个.c源文件中都include了一个头文件,那么好像加不加这个条件编译
[单片机]
人员定位系统控制模块电路设计
定位卡的设计:定位模块以STM32为主控制核心。在该定位模块中使用的是ST(意法半导体)STM32WCBU6x芯片,该芯片采用32位ARMCortex-M3内核;STM32WCBU6x集成了2.4GHz IEEE8.2.15.4兼容的收发器,拥有128KB的Flash和8KB的RAM,是一款高性能的无线片上系统(SoC)。该主控制原理图如图1所示。 图1 主控制器原理图 电路分析:该系统需要外置MCU来控制模块的数据收发,因此外部MCU需要与模块进行通信,其连接方式为(USART)串口。模块提供一个符合标准的 USART接口,其IO电平限制为2.4~3.6V,标称使用3.3V逻辑电平。模块串口在不使用硬件流控制的情况
[单片机]