第七周-GD32F4XX的测试笔记(1)

GD32F4XX的测试笔记(1)

该芯片当具体型号为GD32F450ZGT6,根据GD32F4XX的配置和函数归纳(2)完成到GD-Link无法连接的问题(如下图)。这周主要完成了配置,硬件的了解,烧录,串口通信。下面记录遇到的问题和解决方法。
在这里插入图片描述

软件工具:Keil4,STM32 ST-LINK Utility,串口工具
硬件工具:GD32F450ZGT6开发板,ST-Link编译器

1.ST-Link

ST-Link是用来代替GD-Link来实现连接MCU和PC,并且实现烧录的工具。

1.1 ST-Link调试方式

它有两种调试方式:JTAG / SWD,前者速度慢且连20个pin脚,而后者速度快且只需要4(有的是5)个pin脚。
在这里插入图片描述
在这里插入图片描述
只不过在现有当ST-Link中已经连好了排线,我的想法是两种调试都是可以当,这里可以体现在keil的配置中,两种调试方式都有对应的单元设备:在这里插入图片描述
在这里插入图片描述

1.2 ST-Link指示灯说明

自ST-LINK/V2以来的所有ST-LINK板都实现了一个标有“COM”的LED(无论是在外壳上还是在PCB上)。它是用来判定ST-LINK和PC的连接情况,可以从上图看出,断开与MCU的连接,依然是红灯。

一般“COM”是由红、绿两个LED组合,有常亮、常灭、闪烁等,两个LED同时亮呈现橙色。

ST-Link的LED显示不同状态,代表不同的含义: LED闪烁红色:USB与PC正在枚举。 LED为红色:建立PC与ST-LINK之间的通信(枚举结束)。 LED闪烁绿色和红色交替:数据在目标和PC之间交换。 LED为绿色:上次通信成功。 LED为橙色:ST-Link和目标芯片通信失败。

后面实验中,当编译下载时也能看得见com口闪烁。

2.编译下载

在编译之前,需要先设置KEIL的配置
除了KEIL配置,还需要了解MCU上的硬件,下面两个准备工作(错误)卡了我很久,记录一下。

2.1 准备工作1:设置引导模式

GD32F4xx系列微控制器提供了三种引导源,可以通过BOOT0和BOOT1引脚来进行选择,详细说明见表。该两个引脚的电平状态会在复位后的第四个CK_SYS(系统时钟)的上升沿进行锁存。用户可自行选择所需要的引导源,通过设置上电复位和系统复位后的BOOT0和BOOT1的引脚电平。一旦这两个引脚电平被采样,它们可以被释放并用于其他用途。
在这里插入图片描述
在MCU按钮如下位置:
在这里插入图片描述

通过调试转换按钮发现,BOOT0/1拨到ON下面表示置0(GND),所以为了选择主FLASH存储器作为引导源选择,需要将BOOT0拨到ON下面的,否则JTAG调试会keil中会出现指令错误:
在这里插入图片描述
这一点错误是我试了很久都不行的错误,错误现象是PC可以将程序烧入ST-Link,但是ST-Link上的com口灯不停的闪烁,并且烧写的串口程序不会返回预先准备的打印内容:

printf("\r\nhollow");

2.2 准备工作2:了解通信串口

MCU有两个供电口(串口),分别是J1,J2
正常的都有串口通信,即连J1,但下面也介绍一下两个串口
在这里插入图片描述

J1/2是串口(USART):
通用同步异步收发器(USART)提供了一个灵活方便的串行数据交换接口,数据帧可以通过全双工或半双工,同步或异步的方式进行传输。USART提供了可编程的波特率发生器,能对系统时钟进行分频产生USART发送和接收所需的特定频率。

MCU上有根跳线,位置在D1,是J1下的一个接口
在这里插入图片描述

2.3 编译下载

通过查找资料,有两种方法可以将程序下载至MCU。第一种方法是先得到keil生成的.hex文件,再利用ST-Link插件将其烧录至MCU。还有一种是通过keil中的LOAD按键将程序下载至MCU。

2.3.1 ST-Link传输hex文件

由于编译器是ST-Link,所以GD-Link软件不能连接ST-Link和PC

第一步:连接ST-Link和PC,Target->connect
(如果连接失败,检查线是否松动;MCU是否供电;KEIL是否退出设置页,否则会占用端口)
在这里插入图片描述

第二步:keil生成.hex/.bin文件
只需要点击第三个(build all target),如果只修改了main函数,可以只点第二个(build target)
在这里插入图片描述
编译成功,会显示生成.hex/.bin文件
在这里插入图片描述

第三步:用ST-Link读取该文件,File->open new File
找到刚刚生成的文件并选择
在这里插入图片描述

第四步:编译,Target->program&Verify
在这里插入图片描述

第五步:下载成功
在这里插入图片描述

2.3.2 keil在线下载

这个方法相比上个方法好很多,但前提也在于单片机支持该功能,这块就支持。
第一步:完成2.3.1的第二步,编译成功
第二步:下载,点击下面的第六个(LOAD)
在这里插入图片描述
第三步:下载成功
在这里插入图片描述

3.串口通信

正确通信应该如下:(第一个单词会乱码,可能是截断的问题)
6I2J6I6T54i454i4,size_20,color_FFFFFF,t_70,g_se,x_16)
这里总结了串口通信乱码的情况,有两个点需要注意的。波特率和晶振与头文件默认情况不同。

3.1 波特率导致的乱码

解决:使头文件配置的波特率与串口工具保持一致

头文件
在这里插入图片描述在这里插入图片描述

串口工具
在这里插入图片描述

3.2 晶振导致的乱码

解决:使头文件默认的晶振与硬件晶振保持一致(这里是12000000改成8000000)

头文件
在这里插入图片描述在这里插入图片描述
硬件:(显示不清楚,晶振8000000)
在这里插入图片描述
结合电路图
在这里插入图片描述

4.下周任务

  1. 搞清楚为什么还会有部分乱码,是哪个参数导致的
  2. 导入算法库
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值