MacOS +VScode 环境下编译GD32 embedded builder HAL 库(点灯+hello world)待续

前言

前文已挖坑,GD32 embedded builder 图形配置和自动生成代码是一个空壳框子。不能干任何事情。包括了最简单的点灯和串口print个“hello world”都不行。

所以开始来填坑了。如果不知道怎么配置请看这里

MacOS +VScode 环境下搭建GD32 embedded builder HAL 库环境(空白项目)-CSDN博客

1.配置个点灯基础环境

用我手头上的开发板设置个基础配置:

1)PA4 PA5 PA6 作为普通的GPIO 推挽 输出,点个led

2)定义了UART0 和UART1 两个串口

3)定了SWD接口给DAP-link进行debug

2.点灯

2.1准备systick.h(标准库方式)

因为Embedded Builder 自动生成的代码是一个纯纯的空白模版,完全没有功能的。对头,就是连点灯都不行的。。。。。这就需要我们自己配置systick 了。不然连delay_1ms这种函数都没有提供的哦。从官方的模版中就有现成的(从标准库过来的)。

复制黏贴到自己的项目文件夹里面就OK。

2.2修改hal_it.c文件添加delay的工作模式和systick.h

2.3修改main.c文件

  • 加上systick.h,其他两个也一键三连无脑添加。

  • 在mian函数初始化环节添加systick_config();

至此,就可以愉快的使用delay_1ms了。hal库自动处理好的tick的时间长短的了。

2.4点灯

makefle-build-flash 一气呵成!

2.5 HAL库的内置函数

HAL库在 SysTick_Handler 里面已经给准备好函数了。

然后就可以愉快的点灯了。是不是更简便。

3.串口debug输出

3.1添加文件serial_debug.c和.h

这个就是自己简单封装的一个输出函数而已。放在附件中,方便大家使用。

3.2修改gd32e23x_hal_init.c文件(重点坑)

Embedded Builder 自动生成的代码文件中,本身帮你配置好了HAL的硬件抽象初始化,用uart0_info对象的。所有串口的设置参数比如buad什么已经配置好了。

但是!!!没有使能!!!需要自己再XXX_hal_init.c里面自己使能的。。。(这个坑花了1天的时间爬出来,万万没有想到还有这么一手。。。)用标准库的那个函数 config一下,再enable一下就行。这个看着加就行。注意GPIO是 1复用 2推挽 3上拉 

deinit也是照样来一下。其余所有需要用的端口都这么改一下

3.3测试serial_debug 和阻塞模式的串口输出

直接来输出serial_debug 和阻塞模式的串口输出

是预期的数据结果。nice。

3.4改用HAL库 顺便改了printf函数

从Hal固件库借来的代码,例子是用Uart1作为debug口,所以用Uart1。这个根据自己的实际情况来处理。

记得在 hal_init.c的uart1初始化函数里加入usart_enable();当然这个在mian()函数添加也行看个人习惯了。

然后就可以顺利输出了。

3.5测试串口DMA模式输出

GD - EmbeddedBuilder - 用DMA进行串口发送接收,支持接收不定长包_embeddedbuilder使用-CSDN博客这里有个参考文章。设置方面直接按文章里的进行配置就好。

stm32 和 GD32 串口DMA之间的比较
参数callback函数
STM32串口|数据|长度Cube MX封装好 RxCpltCallback
GD32

串口|数据|长度|callback函数

结构体

hal_uart_user_callback_struct

:complete_func /error_func

可以自己定义函数操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值