STM32程序主要使用 C语言 编写,这是绝对的主流。在某些关键场景下会嵌套汇编语言,也有一些新兴的替代方案。
一、核心语言:C语言
为什么是C语言?它平衡了性能和开发效率,既能直接操作硬件寄存器,又有足够高的可读性和移植性。无论你用标准外设库还是HAL库,底层逻辑都是用C语言实现的。即便是你之前可能接触过的Arduino,其底层也是C语言。
二、特殊场景:汇编语言
汇编语言不会用来写整个工程,但在两种场景下必不可少:
· 启动代码:芯片复位后,需要一段汇编代码来初始化堆栈指针、准备C语言运行环境,最后再跳转到 main() 函数。
· 精确控制/性能优化:在操作系统中实现任务切换(需精确操作寄存器),或编写对时间要求极严的底层驱动时,可能会内嵌汇编。
三、现代选择:其他语言
· C++:可以用,但开启异常和RTTI会显著增加代码体积,在资源有限的STM32F103C8T6上需要谨慎配置。
· MicroPython:一种在STM32上跑Python解释器的玩法。语法简单,适合快速验证,但实时性和运行效率不如C语言。
· Rust:一种强调内存安全的现代语言,在嵌入式领域发展很快,但学习曲线较陡,资料也不如C丰富。
总结
· 入门首选:C语言。资料最多,库最全,是探索STM32世界的钥匙。
· 学习建议:C语言基础(特别是指针和位操作)需要熟练掌握,这是看懂寄存器配置的关键。