gd32和stm32的编程区别

发布者:SereneMelody最新更新时间:2024-07-24 来源: elecfans关键字:gd32  stm32 手机看文章 扫描二维码
随时随地手机看文章

GD32和STM32是目前市场上比较流行的两种芯片,它们都具有高性能、低功耗和丰富的外设等特点,因此得到了广泛的应用。但是,GD32和STM32在编程上还是存在差异的,本文将就此进行详细地解析。

一、GD32和STM32的概述

GD32和STM32是龙芯(RISC-V)和意法半导体(ARM Cortex-M)两家公司推出的芯片,由于两家公司的巨大影响力,它们在市场上一直处于领先位置。GD32是龙芯推出的32位微控制器,基于RISC-V架构,主要应用于智能家居、物联网和工业控制等领域;STM32是意法半导体推出的32位微控制器,基于ARM Cortex-M架构,主要应用于汽车、医疗、电力等领域。

二、GD32和STM32的编程区别

1. 开发环境

GD32和STM32的开发环境主要分为两种:Keil和GCC,这两种开发环境对于GD32和STM32都是通用的,但是在具体的编译工具链的选择上有所不同。对于Keil开发环境来说,在编译器的选择上STMCubeIDE是只能用于STM32的,而GCC则没有这个限制,可以用于GD32和STM32。此外,在驱动和库的选择上也有所不同。

2. 命名空间

在代码的编写上,GD32和STM32的命名空间略有不同。例如,在使用时钟控制器的API时,在STM32中是通过RCC来访问,而在GD32中则是通过rcu根据不同的模块来访问。这种命名空间的不同性实际上是由于不同的芯片结构造成的。

3. 输出方式

GD32和STM32在输出方式上也有所不同。在STM32中,输出方式主要有串口、JTAG、SWD和USB等;而在GD32中,则多数通过串口输出程序信息。此外,两者在调试时,也有不同的方法,例如在STM32中,调试信息是通过SWD方式传输到PC上;而在GD32中则是通过串口直接输出的。

4. 外设驱动

GD32和STM32的外设驱动也有所不同,在使用外设时需要注意。比如,在使用GPIO时,GD32需要指定端口的引脚数量和具体使用的引脚,而STM32则只需要指定端口一个参数。

5. 中断处理

在中断处理上,GD32和STM32也有所不同。GD32中的中断处理快速跳转准备工作需要通过指令进行,而STM32中的中断处理则是通过NVIC进行的。在使用时需要注意不同的编写方式和调用函数。

6. ADC/DAC

在ADC/DAC的驱动上,GD32和STM32也有所不同。在GD32中,ADC和DAC是分别独立的,需要对不同的模块进行初始化,而STM32中,则是通过一个通道来进行控制。

7. 其他

GD32和STM32在其他方面的差异还有很多,在具体的使用过程中需要根据具体的需求进行操作。

三、总结

虽然GD32和STM32在硬件上都拥有32位架构和丰富的外设,但是在具体的编程上却发现有许多的差异。这需要程序员针对具体的需求,选择合适的开发环境和合适的编写方式,以达到最好的效果。在今后的应用中,这两种芯片或许还会有更多不同的地方,我们需要不断的学习和探索,以适应市场对于硬件的不断升级和迭代的要求。

关键字:gd32  stm32 引用地址:gd32和stm32的编程区别

上一篇:ch32f103和stm32的区别
下一篇:基于STM32设计的简易手机

推荐阅读最新更新时间:2024-11-17 13:54

基于STM32的新型电力数据采集系统的设计与实现
引言 传统的电力数据采集系统受限于有限的存储空间和通信接口,存在精度不高、实时性差、采集信息量小等缺点,已无法满足实际的电力系统调度与管理需要,本文提出的基于STM32的新型电力数据采集器充分利用了STM32丰富的片上资源,大大节约了硬件投资,利用STM32具有快速采样的高性能ADC、先进的电源及时钟管理、双看门狗等功能,从而大大增强了系统的实时性与可靠性,精度显著提高,同时功耗大为降低。 1、总体设计方案 本系统由模拟量与开关量采集模块、通讯模块以及上位机人机交互模块组成,系统框图如图1所示。首先电压、电流等模拟信号经信号调理电路调理后,经模数转换器ADC转换为数字信号,再由STM32进行数据处理;开关量信号则通过I/O口输
[单片机]
基于<font color='red'>STM32</font>的新型电力数据采集系统的设计与实现
stm32 usb_istr.c 文件分析
最近做一个项目,在stm32内部一部分用来存储自己的代码,开辟出一段空间来用来存储FPGA代码。每次开机实现stm32往FPGA写入代码的功能。 向stm32某段空间写入代码的方法: (1)ST_LINK Utility软件 通过JTAG,连接后。载入FPGA的bin文件,改写Start address就可以将代码写入固定的区域。 当然可以用ST-LINK写入任意代码。 (2)用STMFlashDemo软件。 这个官方的串口下载软件,通过系统存储器进行下载。在之前的日志中提到过,不详说。 利用MCUISP下载的时候,会擦出整个芯片。 所以如果将一部分内容存到FLASH中比如(0x0807000~0x0807100),再
[单片机]
<font color='red'>stm32</font> usb_istr.c 文件分析
嵌入式开发之STM32开发之EXTI中断使用及踩坑
关键点 中断配置,中断触发 中断配置 中断必然要绑定一个触发中断的外部I/O口,这里我选PA0,对应EXIT0,因为PA0正好对应我板子上的K3键,我需要K3键去触发这个中断 GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline(PB0) clock and AFIO clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);//GPIOA根据你自己板子设定
[单片机]
STM32-仿真调试时的SystemInit陷阱
STM32-仿真调试时的SystemInit陷阱 我在开始STM32的仿真调试时,遇到一个问题,就是调试时程序一直停在SystemInit()中的等待晶振中,怎么也出不来。 SystemInit()前面部分的代码,都能走过,就是在执行到最后一个函数时出问题了。 最后一个函数是:SetSysClock(); 执行到下面这个循环之后,出不来了: /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC- CR & RCC_CR_HSERDY; StartUpCounter++; } while((HS
[单片机]
STM32-仿真调试时的SystemInit陷阱
STM32之中断与事件---一个使用GPIO作为外部中断的示例
1.GPIO的正确设置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitSt
[单片机]
基于STM32的家庭服务机器人系统设计
引言   随着人工智能和传感器技术的发展,机器人已从工厂的结构化环境进入人们的日常生活环境,机器人不仅能自主完成工作,还能与人共同协作完成任务或在人的指导下完成任务 。家庭服务机器人是智能家居系统 的一个重要组成部分,在生活中的作用越来越重要。当前,大部分的家庭服务机器人不具备行走功能或只具有简单的避障能力,机器人的研究很多依赖于仿真实现,但是现实情况和仿真结果可能大相径庭。也有一些研究将问题复杂化,反而走了更多的弯路。   针对当前家庭服务机器人的不足和现代智能服务机器人的要求,本文提出一种基于STM32的家庭服务机器人系统的设计方案。该方案模拟智能家居环境,简化了定位方式,有效地利用了ZigBee技术低成本、低功耗的特点
[安防电子]
基于<font color='red'>STM32</font>的家庭服务机器人系统设计
STM32高级开发(14)-使用CubeMX生成STM32工程
在我们了解libopencm3的使用后,发现libopencm3只适用于小型工程,其最大的特色只是在USB方面的使用方便,那么在我们配置大型工程的时候有没有一种更快捷的方式呢,显然是有的。它就是CubeMX,ST官方出的神器,可以使得我们像配置FPGA一样配置STM32的功能。CubeMX早期是运行在windows下的,但由于是Java写成的它也可以同样的运行在Linux环境中。 安装JAVA环境 在Ubuntu中可以使用的java环境有很多我们这里使用软件中心的默认安装。 $ sudo apt-get install default-jre 安装完毕后可使用指令查看java版本验证安装成功 $ java -version
[单片机]
stm32调试模式下运行正常,上电自启动后运行不正常排查分析
最近用到STM32F103的芯片,芯片单步正常,直接上电不能正常工作,加上程序中里面有点bug.然后就各种莫名奇妙。 后面,单步状态把bug找完之后,理论上上电就可以正常跑了。但是总会出现莫名其面的问题。 比如,①单步正常,直接跑就异常。 ② 异常指的是程序不是死机或者hardfault而是不按照预想的逻辑,但是还是看似正常的运行。 ③用镊子复位,其可以正常起来, 百度了一下:https://blog.csdn.net/weibo1230123/article/details/80664466 多数是查时钟复位电源,但是无效。最后发现是外设启动慢导致的。 首先,明白一个道理,单步逻辑对的,那么程序就是对的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved