J-link几乎可以调试所有的arm芯片,不得不说是个好东东。这里记录三种stm32的下载程序方式:
1.J-Flash下载(需要用到J-link)
2.MDK配置下载(需要用到J-link)
3.ISP下载(串口下载,需要用到官配串口下载软件,用过stc51的对这个都不会陌生吧)
----------------------------------------------------------------------------------------------
1.J-Flash下载(需要用到J-link)先安装J-link驱动,可以到http://www.segger.com/cms/jlink.html下载最新驱动。
打开运行,首先配置cpu对应开发板的cpu,
将开发板与J-link连接到电脑上,然后连接
连接成功如下图所示:
然后选择要下载的hex文件,快捷键ctrl+O(或者file/open)打开,选择文件。
然后选择Target/Auto自动烧录。(有时候比较奇怪,一次不能成功,这时候需要手动重新烧录,Target/Erase chip-->Target/Erase sectors-->Target/Program && verify).
OK,烧录成功。
----------------------------------------------------------------------------------------------
2.MDK配置下载,即在MDK中在线调试下载。首先确保j-link驱动已经安装成功。剩下的工作只是设置一下MDK即可。
其实也可以选择J-LINK/J-TRACE的。
点击setting开始设置。
点击add,选择cpu。
OK,可以在线调试and下载了:
----------------------------------------------------------------------------------------------
3.ISP下载(串口下载)
(1)下载软件Flash_Loader_Demonstrator_V1.3_Setup.exe,一路next安装即可。注意:版本为1.3版本的,我试了2.1版本的,无法连接成功。
根据提示:设置启动模式,设置BOOT0=1,BOOT1=0,然后重启系统。在连接。下面不说话,直接看图。
(2)用STMISP.EXE下载,STMISP.EXE是一个STM32的ISP应用程序
STMISP.rar
接着不说话,直接上图。
关键字:J-Flash下载 STM32 J-link 设置方法
引用地址:
J-Flash下载STM32用J-link的设置方法
推荐阅读最新更新时间:2024-03-16 15:42
STM32汇编指令(一)WFI 和 WFE
ARM汇编的调用 嵌入式开发,尤其是编写BSP的时候,非常接近底层,这个时候有可能用一些汇编指令来保证程序的简洁和高效,但是平常编写代码用到的都是C/C++,那么如何使用汇编指令呢? 其实这个问题也很简单,在C/C++中提供了关键字asm或者ASM来内嵌汇编,使用如下: asm( WFI ); 但是这种方法问题比较大,在Cortex-M平台上,这个语句有很大几率编译不通过,因为各家编译器又实现了自己的宏,具体可以在core_cmx.h中看到,如果我们的项目要在不同的编译器上通过,可以考虑使用条件编译来达标,不过这样付出的成本就很大。 另外一种简单的方法是使用intrinsic.h这个头文件,这个头文件把所有的汇编
[单片机]
基于STM32平台的BMP180测试(模拟IIC)
1.测试描述: 使用模拟IIC,从BMP180中获取ID号、温度值、气压值以及计算海拔高度。 2.测试准备: 硬件平台:原子战舰V3开发板 测试工具:逻辑分析仪、串口调试工具 3.数据手册解读: (1) 首先是多个字节的读取时序图,从这里也可以看出BMP180芯片的地址+写信号是0xEE,地址+读信号为0xEF,当然手册前面也有提到过,有兴趣的可以自己去查看一下手册。 (2) 然后本人测试时默认使用的是下图画横线部分的部分,也就是气压这块使用的是低功耗模式。OSS的值要注意,因为后期的计算需要这个,并且读取UT值时也要做对应的处理。 (3) 下图就是手册里给出的利用BMP180里的参数计算气压和温度的
[单片机]
STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)
下面的代码,是把PA0当做一个按键口,芯片内部上拉,按键闭合时,IO口被拉低,触发中断。 #include stm32_lib/inc/stm32f0xx_rcc.h #include stm32_lib/inc/stm32f0xx_exti.h #include stm32_lib/inc/stm32f0xx_gpio.h #include stm32_lib/inc/stm32f0xx_syscfg.h #include stm32_lib/inc/stm32f0xx_misc.h int main(void) { //时钟使能 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPI
[单片机]
【STM32】HAL库调用HAL_SPI_Transmit出现HartFault问题
问题描述: HAL库调用硬件SPI发送函数HAL_SPI_Transmit会导致程序进入HartFault // flash 页大小(字节) #define FLASH_SPI_PAGE_SIZE (256) static uint8_t write_buffer ; spi1_write(W25QXX_CHANNEL, (uint8_t *)write_buffer, (length + 4)); /** * @brief SPI写入 * @param *txBuffer 发送字节集 * @param txLength 发送长度 * @return spi发送的长度 * */ uint32_t s
[单片机]
STM32 spi与FPGA的通信
最近在研究SPI总线,至于协议和硬件描述就不多说了 四线包括时钟、片选、接收、发送 初始化SP SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //全双工 SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //主模式 SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; //16bit宽度 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure
[单片机]
STM32独立看门狗(宠物狗)
一、前言 ······在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) ,其主要功能是:能够让CPU复位的一个硬件。 ······看门狗( watchdog timer),是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作
[单片机]
STM32库函数USART_SendData的缺陷和解决方法
2.1 问题及现象 使用USART_SendData()函数非连续发送单个字符是没有问题的;当连续发送字符时(两个字符间没有延时),就会发现发送缓冲区有溢出现象。若发送的数据量很小时,此时串口发送的只是最后一个字符,当发送数据量大时,就会导致发送的数据莫名其妙的丢失。 如: for(TxCounter = 0;TxCounter RxCounter; TxCounter++) USART_SendData(USART1, RxBuffer ); 2. 原因 此API函数不完善,函数体内部没有一个判断一个字符是否发送完毕的语句,而是把数据直接放入发送缓冲区,当连续发送数据时,由于发送移位寄存器的速度限制(与通信波特率有关),导
[单片机]
stm32之定时器彻底研究
这里介绍两种方式使用stm32的定时器:直接操作寄存器和使用st的官方的库文件。 相比较而言,直接操作定时器比较简洁,对着寄存器看十分明了。而使用库文件有一点晕头转向。 (个人观点) 程序如下:(以下程序在DX32的例程修改而来,使用的是比较古老的3.0固件库) 1、timer.c文件 #include STM32Lib\stm32f10x.h void TIM2_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; u16 CCR1_Val = 4000; u1
[单片机]