<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jickjiang的博客]]></title><description><![CDATA[调试点滴]]></description><link>https://blog.youkuaiyun.com/jickjiang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jickjiang]]></copyright><item><title><![CDATA[嵌入式C，使用动态内存分配安全吗？]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/99288313</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/99288313</guid><author>jickjiang</author><pubDate>Mon, 12 Aug 2019 09:52:59 +0800</pubDate><description><![CDATA[想在C语言程序员之间开始一个激烈的，或者说有争议的讨论很简单，只需要问：“使用动态内存分配安全吗？”
使用动态内存分配安全吗？
在C语言程序开发中，动态内存分配允许程序在运行时向系统申请内存使用，只不过在使用完毕后，需要显式的释放之，这就要求程序员对动态分配的内存了然于胸。
在非常重视安全（safety-critical）的嵌入式C语言程序开发中，动态内存分配广泛被认为是禁忌。使用C语言的m...]]></description><category></category></item><item><title><![CDATA[如何判断一个点是否在多边形内部]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/88344645</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/88344645</guid><author>jickjiang</author><pubDate>Fri, 08 Mar 2019 11:57:05 +0800</pubDate><description><![CDATA[如何判断一个点是否在多边形内部？

（1）面积和判别法：判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形，相等则在多边形内部。

（2）夹角和判别法：判断目标点与所有边的夹角和是否为360度，为360度则在多边形内部。

（3）引射线法：从目标点出发引一条射线，看这条射线和多边形所有边的交点数目。如果有奇数个交点，则说明在内部，如果有偶数个交点，则说明在外部。

本文采用引射线法。

...]]></description><category></category></item><item><title><![CDATA[Base64笔记]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/86737887</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/86737887</guid><author>jickjiang</author><pubDate>Fri, 01 Feb 2019 11:58:56 +0800</pubDate><description><![CDATA[Base64笔记

作者： 阮一峰

日期： 2008年6月23日

1.

昨天的《MIME笔记》中提到，MIME主要使用两种编码转换方式----Quoted-printable和Base64----将8位的非英语字符转化为7位的ASCII字符。

虽然这样的初衷，是为了满足电子邮件中不能直接使用非ASCII码字符的规定，但是也有其他重要的意义：


a）所有的二进制文件，都可以因此转化为可打印...]]></description><category></category></item><item><title><![CDATA[SD卡检测插入卡槽方案]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/86649688</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/86649688</guid><author>jickjiang</author><pubDate>Fri, 25 Jan 2019 17:33:49 +0800</pubDate><description><![CDATA[





 

这个管脚是用与检测SD卡插入的状态

]]></description><category></category></item><item><title><![CDATA[SOC_BY_AUXADC的程序设计]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/86488799</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/86488799</guid><author>jickjiang</author><pubDate>Tue, 15 Jan 2019 10:45:17 +0800</pubDate><description><![CDATA[介绍一下手机电池电量检测算法SOC_BY_AUXADC的程序设计，SOC_BY_AUXADC即通过读取电池电压来估测电池电量值。

 

获取电池剩余电量值的函数入口：

kal_int32 auxadc_algo_run(void)

{

    kal_int32 val=0;

 

    gFG_voltage = battery_meter_get_battery_voltage()...]]></description><category></category></item><item><title><![CDATA[MTK65XX平台充电调试总结 （转载）]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/86488527</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/86488527</guid><author>jickjiang</author><pubDate>Tue, 15 Jan 2019 10:34:41 +0800</pubDate><description><![CDATA[MTK65XX平台充电调试总结 （转载）

摘要：调试电池的充放电管理，首先需要深入了解锂电池的电池原理和特点，充放电特性以及基本的电池安全问题。然后需要对MTK的电池管理驱动程序有深入的了解，理解电池充放电算法的基本原理。在此基础上，对充放电导致的问题进行调试优化。

 

 

一、 锂电池工作原理和特性

1.工作原理：



锂离子电池以碳素材料为负极，以含锂的化合物作正极。它主要依靠锂离...]]></description><category></category></item><item><title><![CDATA[GPS精度因子（GDOP,PDOP,HDOP,VDOP,TDOP）]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/84971671</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/84971671</guid><author>jickjiang</author><pubDate>Wed, 12 Dec 2018 13:50:25 +0800</pubDate><description><![CDATA[GPS精度因子（GDOP,PDOP,HDOP,VDOP,TDOP）

    



 

    PDOP：位置精度因子（Position Dilution of Precision），直译为“精度强弱度”，通常翻译为“相对误差”。具体含义是：由于观测成果的好坏与被测量的人造卫星和接收仪间的几何形状有关且影响甚大，所以计算上述所引起的误差量称为精度的强弱度。天空中卫星分布程度越好，定位精度越高（...]]></description><category></category></item><item><title><![CDATA[MPU6050的数据获取、分析与处理]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/84237863</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/84237863</guid><author>jickjiang</author><pubDate>Mon, 19 Nov 2018 11:45:05 +0800</pubDate><description><![CDATA[Arduino教程：MPU6050的数据获取、分析与处理



转载

摘要

MPU6050是一种非常流行的空间运动传感器芯片，可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧，功能强大，精度较高，不仅被广泛应用于工业，同时也是航模爱好者的神器，被安装在各类飞行器上驰骋蓝天。

随着Arduino开发板的普及，许多朋友希望能够自己制作基于MPU6050的控制系统，但由于缺乏专业知...]]></description><category></category></item><item><title><![CDATA[无人机飞控三大算法]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/84140284</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/84140284</guid><author>jickjiang</author><pubDate>Fri, 16 Nov 2018 15:37:16 +0800</pubDate><description><![CDATA[无人机飞控三大算法：捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法。

 

一、捷联式惯性导航系统

说到导航，不得不说GPS，他是接受卫星发送的信号计算出自身位置的，但是当GPS设备上方被遮挡后，GPS设备无法定位了。比如在室内、隧道内、地下等场所，基本收不到GPS信号。

语录：任何一款有缺点的产品，必然成就了另一款能克服其缺点的产品。

另一种导航方式是不依赖外界信息的，这种导航叫...]]></description><category></category></item><item><title><![CDATA[PID图解]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83987975</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83987975</guid><author>jickjiang</author><pubDate>Mon, 12 Nov 2018 10:32:40 +0800</pubDate><description><![CDATA[小明接到这样一个任务：

有一个水缸点漏水(而且漏水的速度还不一定固定不变)，要求水面高度维持在某个位置，一旦发现水面高度低于要求位置，就要往水缸里加水。 
小明接到任务后就一直守在水缸旁边，时间长就觉得无聊，就跑到房里看小说了，每30分钟来检查一次水面高度。水漏得太快，
每次小明来检查时，水都快漏完了，离要求的高度相差很远，小明改为每3分钟来检查一次，结果每次来水都没怎么漏，不需要加水，来得太频...]]></description><category></category></item><item><title><![CDATA[路由器选择192.168.1.1作为默认网关的3个原因]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83790915</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83790915</guid><author>jickjiang</author><pubDate>Tue, 06 Nov 2018 17:22:50 +0800</pubDate><description><![CDATA[我们每次设置无线路由器，大部分都会在浏览器输入192.168.1.1。那我们是否想过这样的问题额。为什么偏偏选择额192.168.1.1作为默认网关额？ 今天小编就从一下3个方面来解释这个问题。


界面

1、历史层面

也就是在宽带遍布全球以前，无论是企业用还是家用网关用的最多的默认内部地址是192.168.0.1。原因有三，一是当时网关上级没有私有地址，所以从192.168.0开始不会有什么...]]></description><category></category></item><item><title><![CDATA[W5500寄存器描述]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83753073</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83753073</guid><author>jickjiang</author><pubDate>Mon, 05 Nov 2018 17:23:13 +0800</pubDate><description><![CDATA[4 寄存器描述 

 

4.1 通用寄存器 

MR (模式寄存器 - Mode Register) [R/W] [0x0000] [0x00]2 2 注脚符号 : 【可读/写】【内存地址】【默认值】 - [Read/Write] [Address] [Reset value] 

该寄存器用于 S/W 复位，ping block模式和PPPoE模式。 



表格 6 通用寄存器描述 



...]]></description><category></category></item><item><title><![CDATA[DHCP 工作原理]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83745052</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83745052</guid><author>jickjiang</author><pubDate>Mon, 05 Nov 2018 10:47:33 +0800</pubDate><description><![CDATA[DHCP 工作原理

 

一、什么是DHCP?

　　DHCP，动态主机配置协议，前身是BOOTP协议，是一个局域网的网络协议，使用UDP协议工作，常用的2个端口：67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境，主要作用是集中的管理、分配IP地址，使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息，并能够提升地址的使用率。简...]]></description><category></category></item><item><title><![CDATA[BMS算法中定义SOC需考虑哪些因素]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83545188</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83545188</guid><author>jickjiang</author><pubDate>Tue, 30 Oct 2018 17:12:22 +0800</pubDate><description><![CDATA[SOC（state of charge）算法一直是BMS开发应用的关键技术之一。因此讨论SOC算法的技术文章很常见，企业对SOC估算的高精度也往往是宣传的亮点。而关于SOC详尽的解释和定义却不常被考虑，从而导致了SOC算法结果的参考价值大打折扣。显而易见若SOC的概念都是模糊的，又何来精确的SOC呢？因此作者希望通过本文分析几种维度下的SOC值，以及这些SOC值的作用。

粗率的说SOC=剩余容量...]]></description><category></category></item><item><title><![CDATA[超声波倒车雷达原理]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83346706</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83346706</guid><author>jickjiang</author><pubDate>Wed, 24 Oct 2018 16:55:22 +0800</pubDate><description><![CDATA[汽车倒车中使用的倒车雷达防撞报警系统即是俗称的倒车雷达，在汽车倒车时，超声波倒车雷采用超声波测距原理探测汽车尾部离障碍物的距离,是汽车泊车辅助装置。倒车时，当汽车尾部探测到障碍物时，倒车雷达就实时动态显示离障碍物的距离，达到设定的安全警告值时，倒车雷达立即发出报警声，以警示驾驶员，辅助驾驶员安全倒车。现在大多数都配置有倒车雷达。倒车雷达电路种类较多，本文介绍基于单片机控制的倒车雷达系统，该系统采用...]]></description><category></category></item><item><title><![CDATA[CANopen名称详解]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/83154604</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/83154604</guid><author>jickjiang</author><pubDate>Thu, 18 Oct 2018 23:00:33 +0800</pubDate><description><![CDATA[CANopen是一个应用层协议，它为应用程序提供了一个统一的接口，使得不同的设备与应用程序之间有统一的访问方式。
CANopen协议有3个主要部分：PDO、SDO和对象字典OD。

（1）PDO

过程数据对象，可以理解为在通信过程中，需要周期性、实时传输的数据。

（2）SDO

服务数据对象，可以理解为在通信过程中，非周期性传输、实时性要求不高的数据，例如网络配置命令、偶尔要传输的数据等。

...]]></description><category></category></item><item><title><![CDATA[stm32f103rct6 bootloader总结]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/82998048</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/82998048</guid><author>jickjiang</author><pubDate>Wed, 10 Oct 2018 15:35:45 +0800</pubDate><description><![CDATA[SD Card bootloader 总结
描述：


由于需要设备在无调试器的情况直接升级，就必须使用SD卡升级。
升级过程中实时显示升级的进度，并且有信号灯闪烁
使用ucosii系统，更加需要注意中断向量


具体配置：


bootloader限制大小，删除不用的配置，当前的大小为 24KB（0x6000）
app 需要配置ROM的起始地址为0x8006000，修改中断向量偏移（ #defi...]]></description><category></category></item><item><title><![CDATA[字符串截取]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/81608218</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/81608218</guid><author>jickjiang</author><pubDate>Sun, 12 Aug 2018 17:16:17 +0800</pubDate><description><![CDATA[c库

string.h




函数

char *strtok(char *str, const char *delim)
分解字符串 str 为一组字符串，delim 为分隔符。
返回被分解的第一个子字符串，如果没有可检索的字符串，则返回一个空指针。


实例



#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

int main ()...]]></description><category></category></item><item><title><![CDATA[vs code 本地编译C代码]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/81586017</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/81586017</guid><author>jickjiang</author><pubDate>Sat, 11 Aug 2018 13:42:11 +0800</pubDate><description><![CDATA[

之前写的代码总需要找个在线代码编译器去测试，现在发现VS code也能编译C了，具体操作步骤为：


  1.需要在需要编译的文件右键run code,输出窗口有消息提示，这样会生成一个执行文件。需要在输出窗口右键 Stop run code，以免下次生成执行文件失败 
  2.打开该执行文件就可以运行了，基本库都能使用
...]]></description><category></category></item><item><title><![CDATA[结构体队列实现]]></title><link>https://blog.youkuaiyun.com/jickjiang/article/details/81568457</link><guid>https://blog.youkuaiyun.com/jickjiang/article/details/81568457</guid><author>jickjiang</author><pubDate>Fri, 10 Aug 2018 19:02:37 +0800</pubDate><description><![CDATA[lsg_queue.h


#pragma once

#include&amp;amp;amp;lt;stdbool.h&amp;amp;amp;gt;
/* 链式栈接口的定义头文件 */
#define true 1
#define false 0
//读写器配置
typedef struct {
    unsigned char data[600];   //数据
    unsigned int lenght;   // 有效数据
}...]]></description><category></category></item></channel></rss>