4.6嵌入式开发中的c语言(上)
数据类型
嵌入式中~位取反
range范围
delay延时可以用for循环,delay一个固定时间
在这里插入图片描述
这是错误永远出字节四不了循环体到255归0
在做通讯协议,包头 包尾 校验位 不能出错,位宽不能出错,选错类型。
在32位的arm cortex M系列int对应32位四字节存储空间,if else 变量它的值只有1或0,1比特信息,1比特用32位比较浪费。在c语言编程要尽量用满足要求的最小变量类型。
M4带浮点库,但M0不带,用要引用库,也许只有一次简单的运算也会浪费大量内存。要include库。处理浮点数有很多方法。
1例如移动小数点全部转换整数运算。
2三角函数可以做一张一定精度的查表
c语言位操作
变位
有一个变量希望把BIT7也就是第8个比特,从0开始数变为1
0与别的数或不改变与1或变为1
右侧码串叫mask也就是掩码
这个答案是或只改变1个比特,=把不想改变的都改变了,这就是位操作好处
宏定义
清0
别的位不变掩码对应的位变为0,与操作
左移 右移
通讯会用到,有一个变量向把当中几个比特的值取出,赋给一个新的变量
取高四位 低四位
如下图0x34想取出3和4
判断条件
检查某一位是否是0,与0与都是0,关键就是掩码哪一位是否为0,这样就可以进行判断