草庐IT

GD32学习笔记1(高难度工程,点亮一个LED灯)

系列文章目录第一章GD32学习笔记1(高难度工程,点亮一个LED灯)文章目录系列文章目录前言一、工作流程二、新建工程的准备工作三、新建工程四、工程目录管理五、代码实现1、初始化2、主函数总结GD32学习笔记1(高难度工程,点亮一个LED灯)前言GD系列单片机在各行各业使用的比重越来越高,因其较为便宜的价格和对标型号不输ST的性能,使得越来越多的国内企业愿意使用(比如我们公司),作为一个刚上岗的实习工程师,我打算一边学习GD32一边把所学会的东西由易至难的分享给大家,我所使用的芯片是GD32F407VE。一、工作流程点亮一个LED灯这种复杂工程,它有一套比较复杂的工作流程:初始化——输出。初始化

stm32、gd32等芯片固件升级思路

单片机固件升级相关前言理论实践前言众所都周知,固件固件就是固定不动的软件,所以不用升级,此贴完结。。。。。。哎,话虽如此固件一般情况下不需要更新,毕竟主要功能是为控制一些底层的硬件,但是你永远不知道明天和需求哪个先来。所以在一些必要时刻需要给你的单片机留一个后门用于应对各种需求。理论以stm32举例,默认情况下固件程序烧写在ROM上,所以只要使用一些手段在对应地址写上对应数据就可以了。废话不多说下面举几个常见工具和常用的下载和更新固件的方式。实践1通过下载器下载和更新固件程序:stm32或者其他arm内核下载常用的下载仿真器有j-link:更简洁的有jlinkob:当然还有ST自家的st-li

VSCode+CMake+Arm GNU Toolchain搭建GD32开发环境

GD32CMakeexample一个串口收发简单例子。https://github.com/Huffer342-WSH/GD32_CMake_Example可以下载该工程,稍微了解一点cmake就可以简单修改直接使用。GD32CMakeexample使用到的工具编译与烧录命令行VSCode调试配合VSCode的marus25.cortex-debug插件实现调试功能RTT使用方法marus25.cortex-debug手动连接注意事项交叉编译工具链设置链接脚本启动文件从零开始搭建工程使用到的工具交叉编译器:gcc-arm-none-eabi-10.3-2021.10-win32构建工具:Nin

GD32单片机串口DMA发送

一:在使用GD32单片机进行串口DMA发送时,需要进行以下配置:使能DMA时钟和串口时钟。配置DMA通道,包括数据方向、数据宽度、传输模式等参数。配置串口发送端口GPIO的模式和引脚。配置串口的基本参数,如波特率、数据位、停止位、校验位等。配置串口DMA发送所需要的DMA缓冲区。初始化DMA传输,启动发送数据。等待DMA传输完成的中断或者轮询方式,根据需要来进行处理。二;GD32单片机有两个DMA,分别是DMA0和DMA1每个DMA有8个地址通道,每个通道可选择8个外设地址,当然除了外设以外其他所有内存地址DMA可以进行直接搬运:两个DMA在工作时,每次只能搬运一个通道的内容,所以当多个通道同

STM32/GD32学习指南-踩坑之(一)外部晶振配置,初始化失败,不起振

GD32使用外部有源晶振和无源晶振的问题,型号为GD32F450一、GD32配置使用外部晶振1.使用外部无源晶振找到startup_gd32f450_470.s汇编文件,找到SystemInit()函数跳转进去在底部找到system_clock_config()函数,再次跳转进去选中宏定义:__SYSTEM_CLOCK_200M_PLL_IRC16M,跳转,如图将内部时钟定义注释掉,打开相应的外部时钟的定义:__SYSTEM_CLOCK_200M_PLL_25M_HXTAL根据自己的需求打开对应的系统时钟配置定义,比如我用的是外部25MHZ晶振,系统时钟配置为200MHZ,如果定义中没有自己想

嵌入式_GD32使用宏开关进行Debug串口打印调试

嵌入式_GD32使用宏开关进行Debug串口打印调试串口Debug是一种将数据通过串口发送的方法。通过使用printf函数,我们可以将需要发送的数据格式化为字符串,并通过串口发送出去。在C语言中,通常使用串口发送数据的函数为printf函数,但是需要将标准输出重定向到串口。文章目录嵌入式_GD32使用宏开关进行Debug串口打印调试前言一、什么是printf/fputc重定向?二、配置步骤1.串口配置2.宏开关三、注意事项1.关闭半主机模式2.输出十六进制数据总结前言本文详细的介绍了如何重定向printf输出到串口输出的多种方法,包括调用MDK微库(MicroLib)的方法,调用标准库的方法,

关于GD32替换STM32(pin to pin)搭载rt-thread操作系统,需要注意的问题总结

1、SystemInit()函数该函数位于启动文件中的Reset_Handler中(具体实现在GD32位于system_gd32f4xx.c,STM32位于system_stm32f4xx.c中,几乎所有的文件,你只要把gd换成st就能找到对应的文件),gd的叫startup_gd32Fxxx.s,一般st的也是类似的名字,像startup_st32Fxxx.s,(其实就是兆芯抄的别人的。。)xxx是对应的芯片的具体型号,例如我用的gd32f450,和stm32f427的芯片,二者可以pintopin互换。两款芯片,在该函数中都是做了reset操作,例如重置向量表,rcc时钟,失能中断等等,两

GD32F4单片机实现接收超时中断+DMA实现串口的不定长接收和DMA发送

1、通常的实现方式介绍环形缓冲区+定时器超时中断的方式优点环形缓冲区可以接收多帧数据数据帧超时间隔可以设置缺点设备任务比较繁重时,使用中断接收可能会丢失数据。尤其是在长时间关闭中断或者串口中断优先级不高时频繁进出中断。在使用RTOS的系统中,每收到一个数据就会进行一次任务到中断的切换和中断到任务的切换使用串口接收空闲中断+DMA的方式优点不会频繁在任务和中断之间切换,效率会更高一般不会丢失数据缺点空闲中断的时间对于同一个波特率来说是固定的,但某些时候1个字节的接收时间太短,不能作为数据帧接收完成的标志2、接收超时中断的相关内容GD32F4系列的单片机串口除了空闲中断外,还有可配置时间的接收超时

GD32F4移植STM32F4

GD32F4替代STM32F4注意事项前言一、开发环境二、移植步骤1.安装GD的支持包。2.修改32固件库的时钟3.FLASH修改3.1F1的处理3.2F4的Flash修改4.其他修改4.1函数中的变量定义4.2串口发送4.3中断服务函数中不能有printf总结前言近期在项目中采用了GD32F407VET6替换原项目中的STM32F407VET6,网传GD的兼容性很好,之前也用F1系统的替换了一下,按照CSND各位大佬的经验一步步改进了代码,测试直接通过,现在也一直在项目中实际应用了,一直没有出问题。所以这SMT时,嘉立创没有STM的货果断换成了GD,可换时简单,到手之后,搜索了一大圈,并没有

【GD32篇】新建KEIL工程

以GD32f103C8T6芯片为例。一、下载MDK5软件包下载地址:https://www.keil.com/dd2/pack/1.选择工程所需的软件包。2.打开软件包,安装在KEIL5同路径下3.安装成功后打开keil软件,可查看到自己下载的软件包。二、GD32资料下载GD32的相关资料可直接到GD32官网下载。下载地址:兆易创新(gd32mcu.com)1.点击资料下载->软件下载2.在搜索栏直接搜索GD32F10x3.解压文件Docs文件夹中包含有固件库的使用指南。Firmware文件夹中包含GD32F10x芯片的驱动文件以及固件库文件等相关文件。三、新建工程工程的建立可根据自己的习惯,