随笔分类 - C语言
摘要:STM32学习笔记-宏定义引起的问题 1. 问题描述 使用这样的宏定义 #if GPS_MODULE_TYPE == GPS_UM220 #define LWGPS_CFG_STATEMENT_GPSTIME 1 #define LWGPS_CFG_STATEMENT_BDSTIME 1 #endi
阅读全文
摘要:STM32学习笔记-二进制不能精确的表示浮点数 问题:二进制不能精确的表示部分浮点数,所以浮点数应该尽量避免等式和不等式的比较 原因: 根据IEEE可以学到浮点数double在内存中占4个字节其中: 例如:https://blog.csdn.net/qwertyuoi123456/article/d
阅读全文
摘要:C语言-结构体字节对齐问题 在调试结构体从flash读取之后进行校验的时候一直校验不通过,查来查去发现问题: typedef struct { uint8_t SensorID[6]; //传感器ID uint32_t BusinessCyc; //业务周期 uint32_t ControlCyc;
阅读全文
摘要:STM32学习笔记-常用寄存器操作 常用的寄存器位操作总结 1. 常用的位操作 操作 含义 & 与 相同为1,不同为0 | 或 不同为1,相同为0 ^ 异或 相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 左移若干位,高位丢弃,低位补0 >> 右移 右移若干位,正数补0,负数补1 2. 把
阅读全文
摘要:1 tmpCha =abs(tmpmsTime - MillSec); //两时间作比较,检测ms级别的差值 2 if(tmpCha<20) 3 { 4 //! 二者接近 // 默认误差20ms可以接受 5 } 6 else if(tmpCha >950) 7 { //!跨秒 8 if(tmpmsT
阅读全文