一、STM32编程的数据类型
数据类型 | 关键字 | 长度/B |
字符型 | char | 1 |
短整型 | short int | 2 |
整形 | int | 4 |
长整型 | long int | 4 |
单精度浮点型 | float | 4 |
双精度浮点型 | double | 8 |
在MDK中,为了编程的方便,还定义了新的数据类型。
原类型 | 新定义的类型 | 代表的含义 |
unsigned char | uint8 | 无符号的8位字符型 |
signed char | int8 | 有符号的8位字符型 |
unsigned short | uint16 | 无符号的16位短整型 |
signed short | int16 | 有符号的16位短整型 |
unsigned int | uint32 | 无符号32位整型 |
signed int | int32 | 有符号32位整型 |
float | fp32 | 单精度浮点型(32位长度) |
double | fp64 | 双精度浮点型(64位长度) |
STM32使用了大量的固件库,在固件库中有自己的数据类型定义。
类型 | 符号 | 长度 |
有符号整型 | s8 | 1 |
s16 | 2 | |
s32 | 4 | |
int64_t | 8 | |
无符号整型 | u8 | 1 |
u16 | 2 | |
u32 | 4 | |
uint64_t | 8 |
1.转换规则
例:
(int)(a+b);//将(a+b)转换成int类型
这种叫强制类型转换,会得到一个所需要的中间变量,原来变量的类型未发生改变。
二、STM32编程中的C语言知识点
1.位操作
运算符 | 含义 | 运算符 | 含义 |
& | 按位与 | ~ | 取反 |
| | 按位或 | << | 左移 |
^ | 按位异或 | >> | 右移 |
2.define宏定义
define是C语言中的预处理命令,用于宏定义可以提高代码的可读性并且方便编程者对代码的修改,宏定义的格式如下:
#define 标志符 字符串
标识符为所定义的宏名,字符串可以为常数、表达式 格式串;
例:
#define Elayfolk 500
这个表达的是将Elayfolk的值定义为500;
3.ifdef条件编译
在满足某条件时对一组语句进行编译,当条件不满足时编译另一组语句
# ifdef
程序1
# else
程序2
# endif
4.外部声明
C语言中extern可以置于变量或者函数之前,以表示变量或者函数的定义在其他文件中;在同一个工程中,如果想使用的变量在另外一个文件中,可以用exrern声明将该变量引用;