ch32可以用keil吗?ch32和stm32编程有区别吗?

发布者:BlissfulHiker最新更新时间:2024-09-19 来源: elecfans关键字:keil  stm32  编程 手机看文章 扫描二维码
随时随地手机看文章

CH32是山外电子推出的一款基于RISC-V架构的32位微控制器芯片,其具有性价比高的特点,适用于一些成本敏感的产品。而STM32则是意法半导体推出的一款基于ARM Cortex-M架构的32位微控制器芯片,其具有丰富的外设资源和高性能的特点,适用于一些性能要求较高的产品。本文将对CH32和STM32进行比较,并回答读者的问题:ch32可以用keil吗?ch32和stm32编程有区别吗?

一、CH32和STM32比较

1.架构比较

CH32采用了RISC-V架构,而STM32采用了ARM Cortex-M架构。RISC-V架构是一种开源的指令集架构,其具有可定制性强、可移植性好等优点,但是目前在市场上的占有率较低。ARM Cortex-M架构则是目前市场上应用较广的指令集架构之一,其具有性能高、低功耗等特点。

2.性价比比较

CH32的价格相对于STM32要便宜很多,没有STM32的开发板那么加价,适用于一些成本敏感的产品。而STM32则具有丰富的外设资源和高性能的特点,适用于一些性能要求较高的产品。

3.外设资源比较

STM32具有丰富的外设资源,可以满足很多应用场景,例如:PWM模块、ADC模块、USART模块等等。而CH32的外设资源相对来说要简单一些,但是可以满足很多基本的应用需求。

二、ch32可以用keil吗?

keil是嵌入式开发领域比较流行的一款开发工具,其支持很多芯片的开发。那么,ch32可以用keil吗?答案是可以的。目前,山外电子官方提供了针对keil的开发环境和相关资料,因此我们可以使用keil进行CH32的开发。使用keil进行开发的过程可以参考官方提供的《CH32开发环境搭建》文档。

三、ch32和stm32编程有区别吗?

ch32和stm32在架构上存在差异,但是从开发的角度来看,它们的编程有很大的相似性。具体来说,它们都可以使用C语言进行开发,都需要掌握裸机编程和底层驱动编程技能。而且,它们在硬件操作上也有很多相似之处,例如:外设的初始化、寄存器的配置等等。

当然,也有一些不同之处,例如:CH32采用了RISC-V架构,其寄存器的位宽和操作方式可能和STM32不一样。另外,它们的外设资源在数量和类型上也有一些不同,因此需要我们在编程时仔细查看相关的资料或手册,以更好地理解和掌握它们的特点和差异。

综上所述,CH32和STM32在架构、性价比和外设资源等方面都有一些差异。但是在编程上,它们的相似性很大,可以使用类似的编程方式进行开发。而且,CH32也可以使用keil进行开发,具有一定的便利性。因此,我们可以根据具体的需求来选择合适的控制器,并根据其特点和差异来进行开发。

关键字:keil  stm32  编程 引用地址:ch32可以用keil吗?ch32和stm32编程有区别吗?

上一篇:应用笔记 | STM32U575/585 MCU 硬件开发入门
下一篇:用户手册|STM32CubeU5 TFM 应用程序入门

推荐阅读最新更新时间:2024-11-12 12:21

STM32基于固件库学习笔记(3)串口的收发功能+WiFi基础配置
串口设置的一般步骤 1) 串口时钟使能,GPIO 时钟使能   注:串口是挂载在 APB2 下面的外设还需要需要挂载复用时钟使能 //挂载时钟(复用PA) 串口时钟使能,GPIO 时钟使能,复用时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); 2) 串口复位 //系统刚开始配置外设的时候,都会先执行复位该外设的操作。 void USART_DeInit(USART_TypeDef* USARTx);//串口复位 3) GPIO 端口模式设置  注意:RXT、TXT输
[单片机]
<font color='red'>STM32</font>基于固件库学习笔记(3)串口的收发功能+WiFi基础配置
STM32学习记录12 中断向量表
从stm32f10x.s可以看到,已经定义好了一大堆的中断响应函数,这就是中断向量表,标号__Vectors,表示中断向量表入口地址,例如: AREA RESET, DATA, READONLY ; 定义只读数据段,实际上是在CODE区(假设STM32从FLASH启动,则此中断向量表起始地址即为0x8000000) EXPORT __Vectors IMPORT OS_CPU_SysTickHandler IMPORT OS_CPU_PendSVHandler __Vectors DCD __initial_sp ; Top of Stack DCD Reset_
[单片机]
<font color='red'>STM32</font>学习记录12 中断向量表
37.C与汇编混合编程
新建light.c: 修改start.S: 修改Makefile:加light.o 最后make成功,烧写成功。 同样,我们也可以在C函数里调用我们的汇编里面的函数: 修改start.S:把light_led申明为global: 在light.c中被调用: Make编译烧写到开发板:发现灯是可以被点亮的。在C中调用汇编函数成功。 接下来的是在C中嵌入汇编代码,而不是调用: C中嵌入汇编代码: 格式: C内嵌汇编以关键字 __asm__ 或者 asm 开始,包含四个部分的内容,如上图,各个部分用 : 分开,第一部分是必须写的,后面三个部分是可以忽略的,但是分号:不能省略。 汇编语句 输出部分:C
[单片机]
37.C与汇编混合<font color='red'>编程</font>
学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 当初是参考开发的里子写的一直对GPIOD或上 RCC_APB2Periph_AFIO 这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能对跟我一样的新手有所帮助吧o( _ )o... STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特
[单片机]
学习<font color='red'>STM32</font>(2)-IO-AFIO(复用功能IO和调试配置)
我的STM32学习之路(1)---STM32概述(Cortex-M3)
一、STM32概述(Cortex-M3) STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M0,M0+,M3, M4和M7内核,笔者目前要用的型号为stm32f103,内核为cortex-m3,以后有时间再写stm32f407相关文档吧。 对于这款处理器,打算从以下方面介绍。 1.处理器结构 Cortex‐M3 是一个 32 位处理器内核。 内部的数据路径是 32 位的, 寄存器是 32 位的, 存储器接口也是 32 位的。 CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。 这样一来数据访问不再占用指令总线,从而提升了性能。 为实现这个
[单片机]
我的<font color='red'>STM32</font>学习之路(1)---<font color='red'>STM32</font>概述(Cortex-M3)
STM32单片机的BOOT0和BOOT1运用原理
STM32三种发动形式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)体系存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是普通说的ISP顺序。这个区域的内容在芯片出厂后没有人可以修正或擦除,即它是一个ROM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状况决议了芯片复位后从哪个区域开端执 行顺序,见下表: BOOT1=x BOOT0=0 从用户闪存发动,这是正常的任务形式。 BOOT1=0 BOOT0=1 从体系存储器发动,这种形式发动的顺序功用由厂家
[单片机]
STM32官方固件库简析
STM32固件库目录结构如下图所示: 我们主要关注的是 Libraries这个文件夹。 1、_htmresc 是ST图标,Project是一些列子和模板可以参考学习,Utilities是ST官方评估板的例程。 2、Libraries 中 CMSIS(Cortex Microcontroller Software Interface Standand)为Cortex微控制器软件接口标准。 CoreSupport 中包含内核文件 core_cm3.h, core_cm3.c 用于访问CortexM3内核 设备驱动文件 stm32f10x.h, system_stm32f10
[单片机]
STM32 Usart 上电发送一个无效字符的问题
无论这么设置USart,上电后都会发送一个无效字符,这个是STATUS寄存器的上电初始值有问题造成的,Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个状态,一个是发送数据寄存器为空,一个是移位寄存器发送完成。上电后Usart的状态寄存器的发送完成位为0,造成了上电以后会始终会有一个值被发送,这个值就是发送移位寄存器中的值,而这个值有时候是0X00有时候是0XFE 。 要解决这个问题,在初始化的时候先初始化Usart,然后再配置Usart的GPIO位,就可以避免Usart上电发送一个无效字符的问题。 还有一种可能性,在上电后至端口初始化,STM32的I/O端口处于高阻状态,有些RS232转换芯片在输入端为高阻时
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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