STM32调试步骤
调试前,首先跳线J9的2-3脚短接,跳线J4的右边两个脚短接,跳线J5短接,J8短接,J2的1-2短接,3-4短接。
将Jlink与学习板,USB延长线与学习板,串口延长线与学习板(或者USB转串口线与学习板)连接起来,这时LED灯LED5,LED6都应该点亮,如果不亮,说明板子有问题。
打开串口助手,按照如下设置:
1、从桌面打开J-Flash ARM V4.02如图所示。
也可以按照如下顺序打开J-Flash ARM 。
“开始à程序àSEGGERàJ-Link ARM V4.02àJ-Flash ARM”,如下图所示。
2、打开J-Flash ARM后,先进行芯片选项设置,打开OptionsàProject settings 如下图所示。
出现如下图所示的窗口,按照图中所示步骤进行设置
设置完成后,点击“确定”,保存设置。
3、选择烧录文件。点击FileàOpen,如下图所示,
出现如下窗口,
按照下面图中提示操作,
随后会显示打开的文件,如下图所示
4、如果是第一次连接jlink与学习板,则按照下面图示操作
如果不是第一次连接学习板,则按下面图示操作
连接成功后,会有如下提示,否则说明板子与jlink之间连接有问题
5、烧录程序,按照下图所示操作
6、烧录成功后,按下学习板上的RST按键(学习板最右边的那个按键),这时候4个LED(LED1-LED4)会点亮,说明程序烧录成功,焊接的LED电路也正确。
关键字:STM32 调试步骤 串口助手
引用地址:
史上最全STM32调试步骤!
推荐阅读最新更新时间:2024-11-10 00:28
STM32学习之不同FLASH的芯片启动文件选择规则
F103ZET6的FLASH大小是512K,所以选择startup_stm32f10x_hd.s F103C8T6的FLASH大小是64K,所以选择startup_stm32f10x_md.s 移植需要注意的事项 从ZET6到C8T6,需要更改 1、启动文件 2、C++XU选项卡的 3、
[单片机]
STM32寄存器列表 I2C相关寄存器
I2C_CR1(控制寄存器1) 15位:SWRST软件复位,当被置位时,I2C处于复位状态,在复位该位前确信I2C的引脚被释放,总线是空的,定义:0(I2C模块不处于复位状态),1(I2C模块处于复位状态) 注:该位可以用于BUSY位为’1’,在总线上又没有检测到停止条件时。 13位:ALERT-SMBus提醒,软件可以设置或清除该位;当PE=0时,由硬件清除。定义: 0(释放SMBAlert引脚使其变高。提醒响应地址头紧跟在NACK信号后面),1(驱动SMBAlert引脚使其变低。提醒响应地址头紧跟在ACK信号后面) 12位:PEC数据包出错检测,软件可以设置或清除该位;当传送PEC后,或起始或停止条件时,或当PE=
[单片机]
STM32之DMA+ADC
简介:有时候找BUG真是一件痛苦的事、我找了整整一个晚上、第二天上完通信原理回来再找了一会、偶然发现我在主函数里的ADC_DMA_Init()没有写、、这种无奈、、这种、、已经无法用普通话能表达的了、找各种BUG的时候、相信大家都有体会、、在这里就不多说了哈、、希望能帮到你们、、在这里为什么这么直接的讲DMA、、因为DMA很直接、、所以我也很直接、、所以你懂的、、 学习到了STM32的DMA模块、、琢磨了一下中文参考手册,官方是这样描述的: 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 是的,无
[单片机]
stm32程序下载调试之swd
说明: 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-l
[单片机]
stm32 FreeRTOS中如何创建任务
#include config.h #include global.h #include stdio.h #include PC.h #include FreeRTOS.h #include task.h #include list.h void vLED1Task(void *pvParameters) { while(1) { GPIO_Reverse (); vTaskDelay(1000/portTICK_RATE_MS); } } void vLED2Task(void *pvParameters) { portTickType xLastWakeTime; //xLastWakeTi
[单片机]
STM32固件库使用USART
1.USART的配置 (1)关键结构体 GPIO_InitTypeDef USART_InitTypeDef NVIC_InitTypeDef//用于接收的中断 1.1USART的TX在PA9,RX在PA10. 2.时钟线 2.1 USART时钟挂载在APB2上 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//配时钟 3.代码段 3.1(单发送) void usart_init(void){ GPIO_InitTypeDef gpio_
[单片机]
STM32笔记记录3
高级控制定时器(TIM1 和TIM8) TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/ 下自动装载计数器 ● 16位可编程( 可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535 之间的任意数值 ● 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA : ─ 更新:计数器向上溢出/ 向下溢出,
[单片机]
STM32学习笔记9——结构体赋值问题
采用TCP/IP上报采集数据,用结构体的形式建立数据缓冲区。在对结构体整体赋初值(比如帧头之类的可以先赋值)时,发现结构体只能在定义时整体赋初值,而不能在初始化语句中赋。 比如我定义的结构体为: //帧格式结构体 typedef struct { uint32_t frame_head; //帧标志 uint16_t frame_len;//帧长 stcSystemTime frame_time;//帧时间 stcFrameParameter frame_parameter;//参数列表 uint8_t frame_head_check;//帧头校验码 uint8_t frame_total_check;//整帧校验码 s
[单片机]