![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 58
海拉鲁开荒人
林克
展开
-
STM32 OTA升级原理分析
程序运行流程正常程序运行流程程序结构正常程序从起始地址(0x08000000)开始写入中断向量表(地址:0x08000004)用于存储中断处理程序向量。中断处理函数(0x08000004+n)用于各种中断服务函数。main函数(0x08000004+N),一个死循环,存放用户处理程序程序启动流程系统复位启动,从中断向量表中取出复位中断向量跳转到复位中断处理函数,执行复位中断函数完成启动,跳转到main函数入口。执行main函数循环。中断产生,STM32硬件强制将PC指针指向中断向原创 2022-03-08 16:43:00 · 5614 阅读 · 2 评论 -
ESP32基于Arduino环境读取SHT20温湿度,显示在OLED上
ESP32基于Arduino环境读取SHT20温湿度,显示在OLED上#include <Stdio.h>#include <String.h>#include <Wire.h>#include "SSD1306.h"#include "uFire_SHT20.h"uFire_SHT20 sht20;SSD1306 display(0x3c, 32, 33);int counter = 0;void setup() { Serial.beg原创 2021-03-06 16:22:40 · 3037 阅读 · 4 评论 -
CAN OPEN协议--学以致用
CAN OPEN协议协议介绍CAN OPEN协议特点网络管理(NMT)与特殊协议(Special protocols)报文 ID 分类NMT网络管理命令报文ID分类过程数据对象(PDO)和服务数据对象(SDO)过程数据对象(PDO)PDO传输形式服务数据对象(SDO)通讯原则快速SDO协议普通SDO协议最近项目上用到了CAN OPEN协议的电机驱动器,结合驱动器手册研究一下CAN OPEN协议。学以致用,记录一下。协议介绍CAN OPEN协议在ISO 7层网络模型中处于应用层,CAN现场总线处于物理层原创 2020-06-28 15:34:54 · 2061 阅读 · 0 评论 -
学习Keil提供的JSON库--Jansson
Jansson使用记录添加库下载Pack安装包添加库到工程API使用说明数据打包数据编码数据解包数据解码相关资料添加库下载Pack安装包Jansson安装包下载链接:官网链接下载之后,双击完成安装。添加库到工程点击下图图标,进入软件包管理界面勾选Data Exchange->JSON->Jansson选项,然后选择OK。此时工程中已经添加了jansson库。修改Heap Size解析和生成json的时候要保证有足够的堆空间,如果堆大小不够会处理失败。一般设置原创 2020-05-27 11:57:14 · 2543 阅读 · 4 评论 -
C学习--cJSON使用
cJSON移植参考博客cJSON下载下载地址下载源码链接解压源码其中cJSON.c,cJSON.h便是要使用的源码。cJSON配置添加源码使用cJSON要用到malloc相关函数,所以要添加cJSON源码和malloc源码到工程中。修改源码修改堆栈大小Heap_Size EQU 0x00001000修改cJSON源码malloc,free函数...原创 2020-01-19 10:58:01 · 630 阅读 · 0 评论 -
C语言-union学习
这里写自定义目录标题union属性定义方式测试给union赋值应用场景union属性 union叫做联合体,共用体。其精髓在于内部定义的数据结构共用一块内存,大小与最大的数据结构对齐。定义方式union BmsData_uno{ u8 u8RecData[17]; __packed struct { float Voltage; //电池电压 float ...原创 2020-01-08 16:59:02 · 368 阅读 · 0 评论