编程语言
C语言是主要的编程语言。
没人会用汇编的吧??
基本开发方式
开发 Cortex-M3/M4 微控制器主要有以下三种方式:
寄存器编程
- 定义:直接读写外设寄存器。
- 优点:代码最精简。
- 缺点:寄存器难以记忆,移植性差。
库函数编程(标准外设库函数)
- 定义:采用标准封装库 CMSIS。
- 优点:编程方便,移植性好。
- 缺点:代码不够精简,运行速度略差。
可视化界面自动生成代码(HAL库函数)
- 定义:使用如 CubeMX 的 HAL/LL 库进行可视化配置并自动生成代码。
- 优点:可视化配置,入门方便,编程快捷。
- 缺点:代码不够精简,难以实现较复杂的功能。
寄存器编程与库函数编程比较
以将 GPIOF.0 设置为高电平为例:
- 寄存器编程:
GPIOF->BSRRL = 0x0001;
- 库函数编程 (采用标准封装库 CMSIS):
GPIO_SetBits(GPIOF, GPIO_Pin_0);
其中GPIO_SetBits
函数的实现可能如下:
CMSIS (Cortex Microcontroller Software Interface Standard)
- 定义:CMSIS 是一套 Cortex 微控制器软件接口标准,包含了微控制器的外设驱动库、嵌入式操作系统以及协议栈等第三方软件。
- 优点:
- 易于学习,降低了系统开发难度。
- 提高了软件的可重用性。
- 提高软件的兼容性。
- 常用组件:
- CMSIS 内核和外设驱动
- CMSIS-DSP 库 (数字信号处理库)
- CMSIS-RTOS (实时操作系统接口)