自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jickjiang的博客

调试点滴

  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

转载 嵌入式C,使用动态内存分配安全吗?

想在C语言程序员之间开始一个激烈的,或者说有争议的讨论很简单,只需要问:“使用动态内存分配安全吗?”使用动态内存分配安全吗?在C语言程序开发中,动态内存分配允许程序在运行时向系统申请内存使用,只不过在使用完毕后,需要显式的释放之,这就要求程序员对动态分配的内存了然于胸。在非常重视安全(safety-critical)的嵌入式C语言程序开发中,动态内存分配广泛被认为是禁忌。使用C语言的m...

2019-08-12 09:52:59 1048

转载 如何判断一个点是否在多边形内部

如何判断一个点是否在多边形内部?(1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。(3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部。本文采用引射线法。...

2019-03-08 11:57:05 2019 2

转载 Base64笔记

Base64笔记作者: 阮一峰日期: 2008年6月23日1.昨天的《MIME笔记》中提到,MIME主要使用两种编码转换方式----Quoted-printable和Base64----将8位的非英语字符转化为7位的ASCII字符。虽然这样的初衷,是为了满足电子邮件中不能直接使用非ASCII码字符的规定,但是也有其他重要的意义:a)所有的二进制文件,都可以因此转化为可打印...

2019-02-01 11:58:56 264

原创 SD卡检测插入卡槽方案

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

2019-01-25 17:33:49 5369 1

转载 SOC_BY_AUXADC的程序设计

介绍一下手机电池电量检测算法SOC_BY_AUXADC的程序设计,SOC_BY_AUXADC即通过读取电池电压来估测电池电量值。 获取电池剩余电量值的函数入口:kal_int32 auxadc_algo_run(void){    kal_int32 val=0;     gFG_voltage = battery_meter_get_battery_voltage()...

2019-01-15 10:45:17 1048

转载 MTK65XX平台充电调试总结 (转载)

MTK65XX平台充电调试总结 (转载)摘要:调试电池的充放电管理,首先需要深入了解锂电池的电池原理和特点,充放电特性以及基本的电池安全问题。然后需要对MTK的电池管理驱动程序有深入的了解,理解电池充放电算法的基本原理。在此基础上,对充放电导致的问题进行调试优化。  一、 锂电池工作原理和特性1.工作原理:锂离子电池以碳素材料为负极,以含锂的化合物作正极。它主要依靠锂离...

2019-01-15 10:34:41 700

转载 GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)

GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)         PDOP:位置精度因子(Position Dilution of Precision),直译为“精度强弱度”,通常翻译为“相对误差”。具体含义是:由于观测成果的好坏与被测量的人造卫星和接收仪间的几何形状有关且影响甚大,所以计算上述所引起的误差量称为精度的强弱度。天空中卫星分布程度越好,定位精度越高(...

2018-12-12 13:50:25 20353

转载 MPU6050的数据获取、分析与处理

Arduino教程:MPU6050的数据获取、分析与处理转载摘要MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行器上驰骋蓝天。随着Arduino开发板的普及,许多朋友希望能够自己制作基于MPU6050的控制系统,但由于缺乏专业知...

2018-11-19 11:45:05 41145 15

转载 无人机飞控三大算法

无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法。 一、捷联式惯性导航系统说到导航,不得不说GPS,他是接受卫星发送的信号计算出自身位置的,但是当GPS设备上方被遮挡后,GPS设备无法定位了。比如在室内、隧道内、地下等场所,基本收不到GPS信号。语录:任何一款有缺点的产品,必然成就了另一款能克服其缺点的产品。另一种导航方式是不依赖外界信息的,这种导航叫...

2018-11-16 15:37:16 11580

转载 PID图解

小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。 小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频...

2018-11-12 10:32:40 24253 2

转载 路由器选择192.168.1.1作为默认网关的3个原因

我们每次设置无线路由器,大部分都会在浏览器输入192.168.1.1。那我们是否想过这样的问题额。为什么偏偏选择额192.168.1.1作为默认网关额? 今天小编就从一下3个方面来解释这个问题。界面1、历史层面也就是在宽带遍布全球以前,无论是企业用还是家用网关用的最多的默认内部地址是192.168.0.1。原因有三,一是当时网关上级没有私有地址,所以从192.168.0开始不会有什么...

2018-11-06 17:22:50 3854

转载 W5500寄存器描述

4 寄存器描述  4.1 通用寄存器 MR (模式寄存器 - Mode Register) [R/W] [0x0000] [0x00]2 2 注脚符号 : 【可读/写】【内存地址】【默认值】 - [Read/Write] [Address] [Reset value] 该寄存器用于 S/W 复位,ping block模式和PPPoE模式。 表格 6 通用寄存器描述 ...

2018-11-05 17:23:13 6992

转载 DHCP 工作原理

DHCP 工作原理 一、什么是DHCP?  DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简...

2018-11-05 10:47:33 1336

转载 BMS算法中定义SOC需考虑哪些因素

SOC(state of charge)算法一直是BMS开发应用的关键技术之一。因此讨论SOC算法的技术文章很常见,企业对SOC估算的高精度也往往是宣传的亮点。而关于SOC详尽的解释和定义却不常被考虑,从而导致了SOC算法结果的参考价值大打折扣。显而易见若SOC的概念都是模糊的,又何来精确的SOC呢?因此作者希望通过本文分析几种维度下的SOC值,以及这些SOC值的作用。粗率的说SOC=剩余容量...

2018-10-30 17:12:22 15182 2

转载 超声波倒车雷达原理

汽车倒车中使用的倒车雷达防撞报警系统即是俗称的倒车雷达,在汽车倒车时,超声波倒车雷采用超声波测距原理探测汽车尾部离障碍物的距离,是汽车泊车辅助装置。倒车时,当汽车尾部探测到障碍物时,倒车雷达就实时动态显示离障碍物的距离,达到设定的安全警告值时,倒车雷达立即发出报警声,以警示驾驶员,辅助驾驶员安全倒车。现在大多数都配置有倒车雷达。倒车雷达电路种类较多,本文介绍基于单片机控制的倒车雷达系统,该系统采用...

2018-10-24 16:55:22 23166 1

原创 CANopen名称详解

CANopen是一个应用层协议,它为应用程序提供了一个统一的接口,使得不同的设备与应用程序之间有统一的访问方式。CANopen协议有3个主要部分:PDO、SDO和对象字典OD。(1)PDO过程数据对象,可以理解为在通信过程中,需要周期性、实时传输的数据。(2)SDO服务数据对象,可以理解为在通信过程中,非周期性传输、实时性要求不高的数据,例如网络配置命令、偶尔要传输的数据等。...

2018-10-18 23:00:33 3434 1

原创 stm32f103rct6 bootloader总结

SD Card bootloader 总结描述:由于需要设备在无调试器的情况直接升级,就必须使用SD卡升级。升级过程中实时显示升级的进度,并且有信号灯闪烁使用ucosii系统,更加需要注意中断向量具体配置:bootloader限制大小,删除不用的配置,当前的大小为 24KB(0x6000)app 需要配置ROM的起始地址为0x8006000,修改中断向量偏移( #defi...

2018-10-10 15:35:45 2683

原创 字符串截取

c库string.h函数char *strtok(char *str, const char *delim)分解字符串 str 为一组字符串,delim 为分隔符。返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。实例#include <string.h>#include <stdio.h>int main ()...

2018-08-12 17:16:17 246

原创 vs code 本地编译C代码

之前写的代码总需要找个在线代码编译器去测试,现在发现VS code也能编译C了,具体操作步骤为: 1.需要在需要编译的文件右键run code,输出窗口有消息提示,这样会生成一个执行文件。需要在输出窗口右键 Stop run code,以免下次生成执行文件失败 2.打开该执行文件就可以运行了,基本库都能使用...

2018-08-11 13:42:11 1166

原创 结构体队列实现

lsg_queue.h#pragma once#include<stdbool.h>/* 链式栈接口的定义头文件 */#define true 1#define false 0//读写器配置typedef struct { unsigned char data[600]; //数据 unsigned int lenght; // 有效数据}...

2018-08-10 19:02:37 4888

原创 单片机日志记录系统

单片机日志系统架构说明:日志记录系统按照API封装的思想只在接口文件中保留功能性程序,及 init ,set ,get;存储器使用华邦的w25q64,最低擦除的为1个sector(4096Bytes);日志系统主要分为三个部分 1、日志索引 ,2、断电日志存储区,3、日志存储区1、日志索引:为了避免对单个地址持续擦写造成块损坏,日志索引使用两个sector作为日志的索引存储区,日志...

2018-08-08 14:36:49 9533 1

原创 新型按键扫描程序改良

硬件基础四个独立按键逻辑图说明:与bsp_key.c 的代码有一点出入Created with Raphaël 2.1.2开始KEYx_TRIGER?记录键值KEYx_CONTINE?计数器减数是否有键值?计数器减为0?如果有键值为长按结束如果有键值为短按yesnoyesnoyesnoyesno程序bsp_key.h/******************...

2018-08-03 12:09:55 1589 1

原创 stm32f103的RTC驱动程序

具体问题这段时间在弄自己的一个《宝宝的气象站》的项目,使用了ESP8266的WiFi模块,使其能够将数据传输到OneNET后台并显示。网络通信使用的是OneNET提供的EDP通信组件,但是RTC遇到了问题。从NTP服务器获取的时间与本地RTC获取的时间有差异。NTP使用的是1970年1月1日作为起始时间点。本地RTC的起始点是2000年1月1日。这样就需要将NTP获取的秒减去两个时间的间隔。...

2018-08-03 11:56:29 5051

原创 SSD1306双内存驱动

问题原由基于目前在网上找的SSD1306的驱动程序普遍采用一个二维数组作为显示缓存,画点函数作为显示的底层,这样会照成当整个页面在刷新的时候的操作有: 1、单点刷玩整个页面 2、使用显示缓存刷完整个页面 这样会让整个页面刷新缓慢,对人机交互有影响问题解法我目前使用的是OLED12832这款型号的屏幕,程序显示主缓存为OLED_Gram[4][128],对比缓存为O...

2018-08-03 11:38:16 1686

原创 RS485发送数据异常问题解决办法

代码:******************************************************************************* 函 数 名: USARTx_sendBuff* 功能说明: USARTx发送数据* 形 参: usartNum:USARTx序号; buff:数据指针; Len:数据长度* 返 回 值: 无****...

2018-06-13 10:58:47 13690 3

原创 ucosiii 消息队列处理

OS_Q消息队列传输的是指针,所以在传输过程中,需要保持指针所在变量保持。/************************************************************** 函数名称: KEY_Task** 函数功能: 扫描按键是否按下,如果有按下,进行对应的处理** 入口参数: void类型的参数指针** 返回参数: ...

2018-06-01 13:36:04 732

原创 stm32 串口发送字符串第一个字节丢失的问题

使用stm32f205调试串口通讯时,发现一个问题,上电后串口发送字符串的第一个字节会丢失,发送测试数据hello,接收端收到的数据为:ello,第一个字符丢失。用示波器抓取波形,发现第一个数据的波型也是丢失的。出现问题的代码如下:while(*pStr != 0){ USART_SendData(USARTx, *pStr++); while(USART_GetFlagS...

2018-05-18 17:53:36 5999 1

转载 单片机之串口数据处理

随着硬件系统的模块化发展,很多电子产品都做出模块并采用串口进行数据通信。例如:GPRS模块、GPS模块、语音模块、热敏微型打印机、串口摄像头等等。在与这些模块进行数据通信都离不开串口,而对于串口的操作,由于串口本身没有标准的通信协议,所以很难做到非常统一的操作过程。一般来说,不同的模块其有着特殊的通信协议,我们只能根据其协议进行数据解码。 虽然说串口没有标准协议,但是我们却可以把它们的相似部...

2018-05-17 18:08:53 10986

转载 API函数中的缩写

最近看源码,发现有好多复杂的缩写,看不懂,记不住,MSDN上没有,百度呢,要不是没有,要不就是形似。就猜,应该是有联系的吧。有一定的命名规则。就上网搜了一下程序员的编程规范,发现了一些类似的标志。形成缩写的几种技术1) 去掉所有的不在词头的元音字母如screen写成scrn, primtive写成prmv2) 使用每个单词的头一个或几个字母如Channel Activation写成Ch...

2018-05-15 09:47:45 308

转载 系统架构设计

系统架构功能需求根据目前智能仪表的行业需求,智能仪表需要实现设备管理、人机交互、数据上传等功能,按照功能模块化划分,具体系统功能组件如图1-1所示。图1-1 智能仪表系统功能组件图1.2   系统架构的分层设计早在1979年,国际标准化组织ISO下设的一个专门委员会为制定“开放系统互联”(OSI)的有关标准,提出了基于功能分层概念的网络结构七层模型-开放系统

2018-05-03 15:44:55 5731

转载 ESP8266 Smart Config

ESP8266 配置wifi连接方式 1、手机下载ai-link-2015-4-8 013647.apk并安装,添加微信公共账号AiThinker_Technology 2、串口连接至ESP8266 3、通过AT+GMR查看固件版本号,至少要保证是0.9.5,如下: AT+GMR AT version:0.21.0.0 SDK version:0.9.5 ...

2018-04-17 11:53:52 1196

原创 uCosiii队列API应用笔记

OS_Q 消息队列传递的是指针,所以在传递指针的时候需要指针指向的值保持到数据处理完毕/************************************************************** 函数名称: KEY_Task** 函数功能: 扫描按键是否按下,如果有按下,进行对应的处理** 入口参数: void类型的参数指针** 返回参数: 无*

2018-04-17 10:23:22 331

原创 TCP调试助手获取天气数据

数据源:心知天气 ,参考心知天气的API接口参考了一些网上的教程,最大的问题是\n\n 数据不太好输入,造成通信失败,推荐上图软件发送数据包内容:接收到的数据包:

2018-01-19 18:18:32 845

原创 卡片IOT界面设计

目前的IOT电路板OLED12832显示的内容偏少,也不够美观,具体布局每一块都是32*32 pix,最左边的为日期与时间,最右边为温湿度数据左二为今天天气,右二为明天天气

2018-01-19 18:08:04 244

原创 ucosiii 内存api

HEAP 堆申请   ,只找到了获取Heap的函数,没有找到释放的 Mem_Init(); //在系统运行前执行 CPU_INT08U *pbuf_data; CPU_SIZE_T octets_reqd; LIB_ERR lib_err; (void)p_arg; pbuf_data = (CPU_INT08U *...

2018-01-19 10:39:16 464

转载 GPS的NMEA码的详细解释定义

版权声明:以下文字及图片属于网络摘录,飞扬科技编辑及理理,版权所有仍由原创作人持有-------------------------------------------------------------------------------------------------------NEMA协议的由来NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一

2018-01-17 15:46:48 43344 1

转载 Windows10系统输入法切换使用全角和半角的方法

转载自:http://www.xitongcheng.com/jiaocheng/win10_article_7180.html大多数经常排版的用户都知道半角字符和全角字符的使用,一般来说输入英文时大多使用半角,不过有时排版的需求我们也要输入全角字符,那么win10系统英文输入状态下如何切换到全角呢?其实非常简单,在win10系统中英文输入状态时我们需要使用全角时只要按 SHIFT键+

2018-01-16 11:21:09 14067

原创 Microsoft VS Code 改变默认文字编码

描述:由于MDK工程文件集全部采用gb2312编码,使用VS Code打开的时候每个文件都需要选择文件编码格式,可以改变VS Code的默认编码格式,这样就方便多了。解决:1. File(文件)->Preferences(首选项)->Usersettings(设置)2. 配置如图:在用户设置页面,改为GB2312

2018-01-16 09:48:46 46475 4

原创 卡片IOT首块电路板测试通过

总结:经过两个星期空余时间的的调试,电路板基本焊接完成,只差焊接Zigbee模块和GPS模块换天线接口。软件总结:需要在这个版本的硬件中需做1、OLED12832使用SPI接口驱动2、I2C由模拟方式改成了硬件方式,需要增加超时及错误处理。也可就只使用模拟I2C,异常处理的比较好。3、GPS部分程序还未动工。Zigbee也没动工,参考ESP8266的AT指令4、后续使用STemWin做菜单及图形显示

2018-01-06 21:42:54 369

原创 IOT电路板打样

经过一个多星期的绘图,按照能用的原则简易版的IOT板已经画完1、备份电池空间不够改为插座了2、晶振改为8M无源晶振,3、走线过孔最小为0.4mm,铺铜孔径为0.71mm4、SHT21传感器预留I2C插座 -

2017-12-24 18:25:09 326

stm32smarthome

基于stm32f103rct6主控,添加了spi接口的OLED,SHT21温湿度传感器,设备通过esp8266连接到移动的OneNet平台。添加了NEMA协议的GPS模块解析,和获取心知天气接口的程序。

2018-01-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除