stm32程序是用什么语言写的?

STM32程序主要使用 C语言 编写,这是绝对的主流。在某些关键场景下会嵌套汇编语言,也有一些新兴的替代方案。

一、核心语言:C语言

为什么是C语言?它平衡了性能和开发效率,既能直接操作硬件寄存器,又有足够高的可读性和移植性。无论你用标准外设库还是HAL库,底层逻辑都是用C语言实现的。即便是你之前可能接触过的Arduino,其底层也是C语言。

二、特殊场景:汇编语言

汇编语言不会用来写整个工程,但在两种场景下必不可少:

· 启动代码:芯片复位后,需要一段汇编代码来初始化堆栈指针、准备C语言运行环境,最后再跳转到 main() 函数。

· 精确控制/性能优化:在操作系统中实现任务切换(需精确操作寄存器),或编写对时间要求极严的底层驱动时,可能会内嵌汇编。

三、现代选择:其他语言

· C++:可以用,但开启异常和RTTI会显著增加代码体积,在资源有限的STM32F103C8T6上需要谨慎配置。

· MicroPython:一种在STM32上跑Python解释器的玩法。语法简单,适合快速验证,但实时性和运行效率不如C语言。

· Rust:一种强调内存安全的现代语言,在嵌入式领域发展很快,但学习曲线较陡,资料也不如C丰富。

总结

· 入门首选:C语言。资料最多,库最全,是探索STM32世界的钥匙。

· 学习建议:C语言基础(特别是指针和位操作)需要熟练掌握,这是看懂寄存器配置的关键。

相关推荐
Hou'21 小时前
从0到1的C语言传奇之路
c语言·开发语言
Heartache boy21 小时前
野火STM32_HAL库版课程笔记-手动建立工程模板与CubeMX后续用法(重要)
笔记·stm32·单片机·嵌入式硬件
wljy11 天前
第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)
c语言·c++·算法·蓝桥杯·stl
Felven1 天前
B. Promo
c语言
可乐鸡翅好好吃1 天前
UUID----私有服务与公有服务
嵌入式硬件
Wave8451 天前
Freertos中PendSV与sysTick
单片机·嵌入式硬件
jghhh011 天前
带红外抄板和LCD显示的单相电能表设计
stm32·单片机·嵌入式硬件
wggmrlee1 天前
GD32 vs STM32
单片机·嵌入式硬件
czhaii1 天前
STM32 F103 Altium一键下载PCB图
stm32·单片机·嵌入式硬件
雾削木1 天前
基于STM32F411RET6 + 双路MB85RS2MT的铁电U盘
stm32·单片机·嵌入式硬件