自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (23)
  • 收藏
  • 关注

原创 GD32F103快速替换STM32F103

注:本文档仅针对GD32F103系列替代STM32F103系列一、相同点1)、外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。2)、芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。3)、编译工具:完全相同例如:KEIL 、IAR4)、型号命名方式完全相同,所以替代只需找尾缀相同的型号即可,例如:STM32F103C8T6 与 GD32F103C8T6。5)、仿真

2020-10-21 17:59:49 45890 21

原创 GD32E230_timer2解析SIF通讯协议

背景最近客户在使用GD32E230解析SIF,想让帮忙写一个解析的demo。SIF协议简介懒得写和上传附件,直接截图了!环境搭建看着这个协议是不是很简单,直接找一个MCU(STM32F103ZET6)的PB2模拟一个协议,用GD32E230C8T6的TIMER2_CH1 (PB5)来进行解析.WINS:WIN10KEIL: V5.28仿真器:JLINK V9注意:E230开发环境有限制(KEIL至少需要V5.26,JLINK需要固件V9或以上)先上一个发送协议,代码如下:#incl

2022-04-01 11:44:41 1768

原创 安信可1.5---编译下载乐鑫ESP8266 RTOS SDK库

一、安装安信可一体化工具参考安信可官方博客:安信可IDE1.5二、下载乐鑫ESP8266 RTOS SDK库因为github下载太慢,经常下载不下来,这里使用gitee进行下载,请自行安装git工具。乐鑫ESP8266 RTOS SDK GITEE下载地址1、在需要下载SDK的文件下右击2、进行下载3、处理刚刚的报错a、进入刚刚下载的文件中b、修改.gitmodules文件将.gitmodules文件(文本编辑器打开即可)里面的内容完全替换成下面的内容:[submodule "

2022-03-04 18:15:26 2022

原创 GD32VF103开发环境简单介绍

GD32VF103开发环境简单介绍GD32VF103简介GD32VF103开发环境IDE使用前准备Nuclei Studio IDE1、软件下载2、打开工程GD32 Eclipse IDEGD32VF103简介GD32VF103系列MCU采用了全新的基于开源指令集架构RISC-V的Bumblebee处理器内核,是兆易创新(Gigadevice)携手中国领先的RISC-V处理器内核IP和解决方案厂商芯来科技(Nuclei System Technology),面向物联网及其它超低功耗场景应用自主联合开发的

2021-06-02 18:30:34 5554 4

原创 USB_IP cdc详解---usb_int.c

这里写目录标题源代码代码详解CTR_LP源代码/** ****************************************************************************** * @file usb_int.c * @author MCD Application Team * @version V4.0.0 * @date 28-August-2012 * @brief Endpoint CTR (Low and High)

2021-05-08 11:28:19 334

原创 USB_IP cdc详解---usb_sil.c和usb_mem.c

这里写目录标题源代码usb_sil.c代码详解USB_STL_InitUSB_STL_WriteUSB_STL_Read源代码usb_mem.c代码详解UserToPMABufferCopyPMAToUserBufferCopy源代码usb_sil.c/** ****************************************************************************** * @file usb_sil.c * @author MCD App

2021-05-08 11:06:05 567 2

原创 USB_IP cdc详解---usb_ist.c

usb_istr.c详解一、源代码二、宏观介绍三、细节详解1、SOF中断2、CTR正确传输中断3、RESET复位中断4、ERR错误中断5、WKUP唤醒中断6、SUSP挂起中断7、ESOF期望帧首中断一、源代码/** ****************************************************************************** * @file usb_istr.c * @author MCD Application Team * @ve

2021-04-29 18:20:23 470

原创 USB-cdc描述符详解

设备描述符:/* USB Standard Device Descriptor */const uint8_t Virtual_Com_Port_DeviceDescriptor[] = { 0x12, /* bLength 该描述符总长度*/ USB_DEVICE_DESCRIPTOR_TYPE, /* bDescriptorType 设备描述符类型,这里是设备描述符为0x01*/ 0x00, 0x02, /* bcdUSB = 2.00 USB协议

2021-04-22 15:25:11 4776 1

原创 KEIL下使用BAT文件生成BIN文件

一、运行环境WINs:WIN10MDK:keil528MCU:GD32F303创建一个项目,此项目下有两个工程GD32303C_APP和GD32303C_boot。二、BAT常用指令介绍1、创建BAT文件这个比较简单,先创建一个txt文件,然后将后缀直接改成.bat即可,也可以使用另存为.bat文件2、使用BAT文件生成bin文件直接在创建的bat文件中添加如下的代码。E:\keil528\ARM\ARMCC\bin\fromelf.exe这个是绝对路径,既keil安装的路径,根据情

2021-03-01 19:03:06 2008 2

原创 GD32E103/F303系列替换STM32F103

注:本文档仅针对GD32E103/F303系列替代STM32F103系列说明:GD32E103/GD32F10x/GD32F30x都是和STM32F10x系列是完全PIN TO PIN兼容的,因此GD32F30x系列不是完全和STM32F30X系列兼容的。GD32F103是GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和优化,所以4者是兼容的,虽然内核不同,但是通用外设几乎很少涉及到内核部分,在时间急迫的情况下可以使用ST的库开发。一、相同点1)、外围引脚PIN TO

2020-12-17 13:48:08 27855 17

原创 GDMCU---SWO代替Printf

测试环境:编译器:KEIL 5.28芯片:GD32F103 E103 F303仿真器:JLINK V91、使用SWO模式需要多占用一个IO-PB32、勾选MicroLIB3、重构printf函数4、工程配置5、输出结果

2020-12-03 16:26:44 909

原创 如何排查程序中的Hard fault错误

一、Hard fault产生原因硬件方面常见原因:1.电源设计有错误,造成器件供电不稳;2. 电源质量不好,文波,噪声过大;3. 器件接地不良;4. 对于带有Vcap引脚的器件,管脚处理不当;5. 电路中有强干扰源,对器件造成干扰;软件方面常见原因:6.使用了空指针;7.对地址偏移量的计算有误;8. 数组越界导致程序出错;9. 动态内存使用不当,导致访问了已释放的内存地址;10. 通过地址访问了已失效的局部变量;一般因为硬件造成Hard Fault错误的可能性较低,90%都是软件原

2020-09-30 16:28:44 1962

原创 调试神器--->JScope

一、简介J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,但使用可用的标准调试端口。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件并允许选择多个变量进行可视化。只需将目标微控制器连接到J-Link并启动J-Scope。只需几个步骤即可配置J-Scope,并选择要显示的符号。配置可以存储在项目文件中,以便于重复使用和移植。在J-Scope中选择的每个符号都可以单独配置。上下移动图形以更改

2020-09-28 18:32:08 15432 1

原创 JLINK-->JFlash烧录固件

一、简述当仅仅拥有一个固件,比如HEX或BIN文件,如果将它烧录到CPU呢?这里使用J-Link flash解决这个问题,而且可以用于小批量的生产中。二、测试环境OS:WIN7JLINK固件版本:v9.70SEGGER版本:V6.40开发板:GD32F303C-EVEL三、操作步骤1>在开始—>SEGGER—>JFlash打开,创建一个工程,方便以后使用,如下图:然后弹出如下对话框,先使用默认的这些选项,点击OK2>Options—>Project se

2020-09-27 15:43:53 11833

原创 ARM Cortex-M 系列 MCU 错误追踪库 --- CmBacktrace

一、CmBacktrace简介一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:支持的错误包括:断言(assert)故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)故障原因 自动诊断 :可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;输出错误现场的 函数调用栈(需配合 ad

2020-09-26 21:38:24 1393 2

原创 FreeRTOS任务挂起和恢复

挂起和恢复函数:/* 功能:挂起一个任务; 参数:xTaskToSuspend xTaskToSuspend = xTaskCreate(); xTaskToSuspend = xTaskCreateStatic(); xTaskToSuspend = xTaskGetHandle(); 或通过xTaskCreate & xTaskCreateStatic两个函数的最后一个形参 这四种方式获得要挂起任务的句柄。 若xTaskToSuspend = NULL 挂起任务本身*/vo

2020-09-26 14:01:45 448

原创 J-Link RTT使用

一、测试环境1> 测试环境系统:WIN7MDK:keil v5.26开发板:GD32F303C-EVAL固件库:V1.0.2FreeRTOS版本:V10.4.0支持内核: ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33 and Renesas RX100/200/600更多详情可以参考官网:RTT中文可以参考:仿真器代替串口打印2> 找到JLINK驱动的安装目录。解压后可以看到如下图所示文件,Example目录是参考的demo,RTT和Sy

2020-09-23 22:10:14 1779

原创 GD32使用CRC的操作方法

GD32的CRC(循环冗余校验)计算单元使用一个固定的多项式发生器从一个 32 位的数据字中产生 CRC 码。在众多的应用中,基于 CRC 的技术还常用来验证数据传输或存储的完整性。CRC主要特性1> 32位数据输入/输出寄存器。对于32位的输入数据,从数据输入到得出计算结果,需要4个AHB的时钟周期;2> 配有与计算无关的独立8位寄存器,可以供其他任何外设使用;3> 使用 CRC-32 (以太网)多项式: 0x4C11DB7X^32 + X^26 + X^23 + X^22

2020-09-23 16:04:40 3151

原创 JFlash合并两个BIN文件

应用于IAP升级,将bootloader与app合并成一个文件,方便烧录。合并hex文件操作一样,只是不用在输入起始和偏移地址。1、打开J-Flash V6.40如下图:没有安装JLINK驱动的客户,自行百度JLINK V640下载安装,版本理论上没有要求,新的最好。2、创建工程,可以选择不创建型号可以选择一个flash大小一样的即可3、打开文件bootloader文件,地址0x08000000选择对应的文件设置其实地址0x080000004、打开APP程序,File—>

2020-09-23 15:55:23 2313 2

原创 JFlash软件解锁GD32MCU

JFlash解除GD32读保护如果用户添加了读保护或者误操作等导致的下载不了,可以先进行解锁尝试,步骤如下:1、打开J-Flash V6.40如下图:没有安装JLINK驱动的客户,自行百度JLINK V640下载安装,版本理论上没有要求,新的最好。2、打开界面如下,操作如下:3、选择芯片:这里选择ST的型号,为啥选ST的,一方面因为GD的型号不全,另一方面选择GD的型号可能解锁指令不能用,后面新的J-Flash版本应该会逐步完善GD。下面给出一些对应的参考型号,不唯一,大体原则就是FLASH大

2020-09-23 15:50:41 12115 4

原创 FreeRTOS静态创建任务

一、静态方式创建任务和删除任务1>测试环境系统:WIN7MDK:keil v5.26开发板:GD32F303C-EVAL固件库:V1.0.2FreeRTOS版本:V10.4.02>需要满足条件条件一:需要在FreeRTOS.h或FreeRTOSConfig.h中定义#define configSUPPORT_STATIC_ALLOCATION 1条件二:加载头文件时,加载FreeRTOS.h必须在task.h之前,如下:#include "FreeRTOS.h"#

2020-09-23 14:38:20 1799

原创 FreeRTOS动态创建任务

FreeRTOS的动态任务创建与删除

2020-09-23 12:45:54 2152 1

原创 GD32F303移植FreeRTOS

GD32F303移植FreeRTOS一、移植环境系统:WIN7MDK:keil v5.26开发板:GD32F303C-EVAL固件库:V1.0.2FreeRTOS版本:V10.4.0二、添加FreeRTOS到工程1> 在准备好的工程下创建一个FreeRTOS文件夹下,这这个文件夹下分别创建src、portable、include三个文件夹,如下图:...

2020-09-22 17:00:59 8750 9

原创 ESP-01F串口连接百度云

1、创建百度云创建百度云账号—》创建项目—》数据型设备网址1:84zab0i.mqtt.iot.gz.baidubce.com端口号:1883网址2:84zab0i.mqtt.iot.gz.baidubce.com端口号:1884后面登录时任选其中一个就可以,两者的区别就是网址使用了ssl加密创建用户—》用户列表—》身份列表—》测量列表上图红框中的为用户名:84zab0i/zh...

2020-02-29 15:45:33 924

原创 ---GD32F3X0---TIMER14使用TIMER1的代码移植,无法输出PWM

问题描述:使用TIMER1可以正常输出PWM,但是将TIMER1替换成TIMER14却无法输出PWM,两者有什么不一样的吗?TIMER1代码如下:/*! \brief configure the GPIO ports \param[in] none \param[out] none \retval none */void gpio_co...

2020-02-28 18:18:13 1649 1

原创 ---GD32 MCU---RTC使用LXTAL时钟源异常

问题描述:客户在使用40K的内部时钟时钟发现计时异常,然后切换到LXTAL时钟,时钟停止无法运行。原因:40k时钟计数异常,是应为RTC的时间存储格式是BCD码,需要转换,客户没有转换,使用LXTAL异常是应为库函数错误,导致时钟无法选择LXTAL作为RTC的时钟。解决方案:库函数版本:2017-06-06, V1.0.0, firmware for GD32F3x0RCU_RTCSR...

2020-02-28 18:01:01 2036

原创 ---GD32 MCU---SPI硬件CRC校验失败

问题描述:使用SPI的CRC校验始终失败,发送的SPI0发送和读取回来的数据错位了两个字节,导致CRC校验不对。原因:SPI0使用16位格式发送数据,但是客户在使能发送的数据之前,使用了SPI0按照8位格式发送了两个字节,SPI0进行CRC校验时将这两个字节也算进去了。解决方案:发送完8位格式的数据后,重新开关一次SPI0,清空SPI0缓存,即可!!!...

2020-02-28 17:57:11 1687

原创 ---GD32 MCU---SYSCFG相关寄存器无法写入

问题描述:客户在使用中断时,进行中断的相关配置,操作SYSCFG的相关寄存器,始终无法写入往SYSCFG的相关寄存器中写入非0的数据。原因:GD与ST的操作有差异,GD必须保证先打开外设时钟才能进行外设的相关配置,而ST则无此要求。解决方案:打开CFGCMP的时钟,如下图注意:GD的MCU,无论任何外设在配置前都必须先打开时钟,而ST无此限制。...

2020-02-28 17:54:11 1686 3

原创 ---GD32E230---读保护状态识别异常(库函数异常)

问题描述:程序上电判断是否是读保护状态,是,不再进行读保护设置,否则进行读保护设置,但是在每次判断时都是无保护状态,而实际已经是读保护状态了。原因:使用的库版本:\version 2018-06-19, V1.0.0, firmware forGD32E230解决方案:注意:1、E230必须使用keil5.26版本以上2、JLINK 必须是V9固件版本以上3、E230的前4K...

2020-02-28 17:51:02 1358

原创 ---GD32F103---使用ST库开发IAP运行在GD32上,APP无法正常运行

问题描述:使用GD103系列,使用GD的bootloader例程和IAP 的USB在线升级工具,对app程序进行升级,app程序使用ST的标准库进行编写,app不加偏移地址时可以正常运行,但是加载偏移地址后,由bootloader进行跳入后程序跑飞或串口打印信息不对原因:ST的RCC_CFGR寄存器和RCU_CFG0寄存器有差异,如图5-1,ST的1821位最大倍频系数为9,而且第28位为保...

2020-02-28 17:43:56 4209

原创 ---GD32F103---使用ST标准库提高系统时钟运行在GD32F103上

问题描述:使用GD32F103系列替代ST同等系列的MCU,使用ST的标准库,但是由于GD的主频比ST的主频高,需要使用ST的标准库提高到96MHZ.解决方案:SetSysClockTo96在相应位置添加这个宏定义。代码如下:static void SetSysClockTo96(void){ __IO uint32_t StartUpCounter = 0, HSEStatus =...

2020-02-28 17:37:07 3572

原创 ---GD32 MCU---TIMER1更新中断时间不准

问题描述:用户实用Timer1产生10ms的定时器中断,但是每次却产生了20ms的中断,而且无论如何更改分频系数和加载值定时时间都不产生变化。原因:客户缺少了自动重新加载的函数,导致定时器重新计数时不再是要求的值。解决方案:...

2020-02-28 17:33:14 2641 2

原创 ---GD32F450---bootloader跳转到app无法运行

问题描述:bootloader和app程序都能单独正常运行,但是在使用bootloader进行跳转时,程序跑飞。原因:bootloader在运行时已经进行了使能外部时钟、设置PLL为系统时钟的操作,但是在跳转到app程序后,app重新将系统时钟初始化,如图,系统重新使用了内部时钟,由于系统时钟较高(GD32450时钟为200M,ST的4系列频率低,所以不会出现这种现象),在还没有切换成功时就...

2020-02-28 17:28:51 5066

原创 ---调试异常---GD32进入仿真,未点击运行就开始自动运行

问题描述:当点击仿真按钮(如图1)进入仿真时,在不点击运行按钮的情况下自动开始运行(如图2),程序会进入死循环(如图3)。图1图2图三原因:外部晶振异常解决方案:1、使用示波器观察晶振是否起振,无起振,检查硬件电路设计,电容选择是否 合理;晶振是无源晶振还是有源晶振。2、更改宏定义使用内部晶振,看是否会出现这种状况。...

2020-02-28 17:22:21 1924

原创 ---复位现象---GD32 MCU插入SD卡MCU立刻复位

问题描述:程序运行正常,但是在插入SD卡的瞬间,单片机硬件复位,程序重新运行,之后状态一切正常,可以读取到SD卡。如果上电前插入SD卡,则一切正常。原因:使用示波器测试MCU电源,在SD卡插入瞬间,MCU电源电压跌落到2.5V以下,正常GD的大部分产品供电范围是2.6V~3.6V之间,低于2.6V会造成硬件复位。客户使用的5V转3.3V的LDO电压转换芯片电流过小,且电路中无大电容蓄流,导致...

2020-02-28 17:14:31 1414

原创 ---复位现象---GD32 MCU程序有时可以运行有时不能

问题描述:程序进行下载调试一切运行正常,但是在进行复位后,程序就跑飞了不能正常运行!更为奇怪的时有时又可以运行!原因:GD的MCU和ST有差异,ST上BOOT0引脚是内部默认拉低的,而GD的BOOT0状态是不定的,从ST转换过来时电路上未做适当修改,导致复位后偶尔可以进入主程序运行,偶尔又不行。解决方案:BOOT0使用10K下拉电阻,或直接接地。推荐前者!!!...

2020-02-28 17:07:05 4918 3

bat_test.rar

bat_test.rar

2021-03-01

GD32307C_EVAL.rar

GD原厂移植的基于F307移植的常用OS,包含FreeRTOS,rt-thread,ucos_ii,ucosiii,RTX,LiteOS

2020-09-28

GD32207C_EVAL.rar

GD原厂移植的基于f207移植的常用OS,包含FreeRTOS,rt-thread,ucos_ii,ucosiii,RTX,LiteOS

2020-09-28

GD32150R_EVAL.rar

GD原厂移植的基于f150移植的常用OS,包含FreeRTOS,ucos_ii,ucosiii,亲测可用

2020-09-28

GD32107C_EVAL.rar

GD原厂移植的基于f107移植的常用OS,包含FreeRTOS,rt-thread,ucos_ii,ucosiii,RTX,LiteOS

2020-09-28

GD32E103C_EVAL.rar

GD原厂移植的基于E103移植的常用OS,包含FreeRTOS,rt-thread,ucos_ii,ucosiii,RTX,LiteOS

2020-09-28

GD32450Z_EVAL.rar

GD原厂移植的基于GD32F450移植的常用OS,包含,FreeRTOS,rt-thread,ucos_ii,ucosiii,RTX,LOS

2020-09-28

GD32E230C_EVAL.rar

GD原厂移植的基于E230移植的常用OS,包含,FreeRTOS,rt-thread,ucos_ii,ucosiii

2020-09-28

GD32F303_FreeRTOS10400_static_create_task.rar

使用GD32F303开发板,静态创建任务和挂起任务,详情可见:https://blog.csdn.net/qq_23852045/article/details/108752652

2020-09-23

GD32F303_FreeRTOS10400_auto_create_task.rar

使用GD32F303开发板移植FreeRTOS v10400,使用动态方式创建任务和删除任务,详见:https://blog.csdn.net/qq_23852045/article/details/108750503

2020-09-23

GD32F303_FreeRTOS10400.rar

在GD32F303上移植FreeRTOS v10400,移植过程详见https://blog.csdn.net/qq_23852045/article/details/108730470

2020-09-23

GD32F1x0_uart单线模式.rar

使用GD32F1X0系列,实现UART的单线半双工功能,也可以在相应GD32的MCU上直接使用,经过客户验证过的量产代码

2020-02-25

IIC中断发送接收测试.rar

GD32F303作为从机,E231作为主机,使用MCU的iic硬件外设,使用中断的方式实现主从机的通信,经过开发板验证

2020-02-25

E230_rtc唤醒深度睡眠例子.rar

使用GD32 MCU的E230系列实现RTC深度睡眠唤醒,功能描述:系统每5s左右进入深度睡眠,RTC每隔10S进行唤醒,串口打印输出

2020-02-24

303e_emWin_FreeRTOS.rar

使用GD32F303E_EVAL开发板实现emwin和freeRTOS的移植,可以使用开发板直接跑,可以根据需要更改栈区大小。

2020-02-24

E230read_protection.zip

使用GD32E230系列MCU实现客户代码读保护的功能,这种读保护方式是使用代码的方式实现的,当然也可以使用JLINK等烧录的方式实现

2020-02-24

F4_SDRAM_RUN_CODE.rar

使用GD32F450系列实现将代码放到SDRAM里面运行,功能是可以实现的,但是发现运行速度比较慢,不建议使用这种方式。

2020-02-24

GD32E230_SPWM.rar

使用GDMCU的E230系列,实现SPWM波的功能,使用E230系列,必须使用keilV5.26版本以上的,否则均不能使用,jlink仿真必须是V9固件。

2020-02-24

GD32F303_24路PWM.rar

使用GD32F303,输出24路PWM波,用于控制灯光,包含keil工程和IAR,打开时注意keil版本。已经在实际项目中用过

2020-02-24

GD32F303_LIteOS_no_interrupt.rar

使用GD32F303C_EVAL开发板移植的liteos,注意:使用的操作系统的软件中断,只有keil工程,有使用华为官方提供的代码测试OK

2020-02-24

GD32F303C_LiteOS.rar

使用GD32F303C_EVAL开发板移植的LiteOS操作系统,包含keil工程,打开时注意keil版本,同时包含了GD32F303C_EVAL开发板的原理图

2020-02-24

GD32F303C_UCOSIII.rar

使用GD32F303系列开发板,移植的UCOSIII,包含keil工程,打开时注意keil的版本,只是实现简单的LED闪烁的功能

2020-02-24

GD32307C_RT_thread.zip

GD32F307系列移植RT_Thread,包含IAR和keil工程,打开时注意软件版本,比如工程使用的是KEIL4建立的,如果需要使用keil5打开需要进行转换

2020-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除