自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 NTC负温度系数的热敏电阻——通过ADC检测计算出相应温度值

      NTC作为一种负温度系数热敏电阻,其阻值随温度升高而降低。利用热敏电阻的特性可以做温度传感器检测温度应用在单片机中。下面简单介绍下,在单片机中AD检测热敏电阻电压值,然后转换成电阻值,求出当前的实际温度。一、热敏电阻公式NTC 热敏电阻温度计算公式:Rt = R *EXP(B*(1/T1-1/T2))其中,T1和T2指的是K度,即开尔文温度。Rt 是热敏电阻在T1温度下...

2018-11-16 20:47:31 25110 9

原创 ucos进入OSStartHang死循环的问题

大家在移植ucos到stm32后,尝试跑多任务程序很容易发现卡死了情况,debug可以看到是卡死在OSStartHang这里如下图1-1,并且该地方后面还备注了不应该到达这里。其实这个问题很简单就是ucos异常中断服务程序没有正确被调用,那么为什么没有被正确调用呢? 图1-1 其实异常中断服务程序在ucos的源码都定义好了名...

2020-08-11 14:12:23 3407 4

原创 操作系统笔记整理一

前言 最近在回顾操作系统的知识,故综合整理下知识笔记。我看的是清华大学的OS课程在B站上有,陈渝老师讲的非常不错,链接在https://www.bilibili.com/video/BV1js411b7vg?p=98。笔记参考:https://www.cnblogs.com/Amyheartxy/p/9262165.html。 学习操作系统,基本是分为OS基础知识概念了解,然后按照内存管理,进程管理,I/O管理,文件管理这些顺序下来如图1-1所示,这些管理从宏观上看其实都是对空间、时间资...

2020-07-23 16:56:11 422

原创 UWB定位记录二(DWM1000模组介绍)

前言:上篇博客是对UWB理论方面的基本介绍,掌握基本理论之后肯定还需要去做工程实验来测试,所以这篇开始从最普及的UWB芯片DWM1000的资料展开对UWB工程实现的介绍。其实基本UWB理论知识在论文中都是很容易找到,但是具体的工程实现细节大多数论文都未详细展开,故我把网上找到的相关资料整合介绍下。一、DWM1000模组介绍 最开始有一个问题测时间差的问题一直困扰着我,就是测距是基于d=c*t,d为距离,c为光速,t为时间差,一般我们的测距应用范围d都在几十米以内,而c光速值约为3...

2020-07-06 22:16:35 9136 1

原创 UWB定位记录一(UWB基本介绍)

最近又回归到搞UWB定位的项目,在此也写下博客记录下学习过程并供大家参考。这第一篇主要是对UWB进行基本介绍 UWB(Ultra Wide Band)我们一般叫做超宽带通信,顾名思义最主要特征是带宽很宽,远大于现存的窄带通信系统(包括802.11系列和2/3/4和5G中的sub6G)。如果一个无线电拥有超过中心频率20%的相对带宽,或者拥有500MHz以上的绝对带宽,我们称之为是UWB无线电系统。如图3-1所示。 传统UWB通信系统中,我们不需要「正弦载波」作为载体,而是...

2020-06-22 15:05:08 2948 1

原创 rtklib源码分析

上个月基本都是在分析RTKLIB的源码,评估移植到stm32上的可能性。最后结论认为是内存可能会不够,移植源码难度也较大。下面分享下对RTKLIB源码分析的过程把,帮助大家少走点弯路。网上大部分都是对单点定位部分的源码解析,我能找到的资料也是关于该部分。 分析源码文章地址:https://blog.csdn.net/wuwuku123/article/details/106068946 这篇是我目前看到分析最详细的,其基本逻辑也是按照网上可以看到的那张函数时序图,如图...

2020-06-05 16:57:46 4182 1

原创 解决ublox无法定位问题(一直输出$GxTXT)

最近开始研究有关RTK技术的项目,于是先购买了两块ublox公司的NEO-M8T-0型号芯片。(注意NEO-M8T还细分为NEO-M8T-0和NEO-M8T-2,前者不支持RTCM输出,后者支持RTCM输出) 首先都是按常规步骤,直接把芯片模块串口接电脑调试,这边推荐是用官网的u-center调试软件。GPS芯片大多数都是上电后串口自动发送定位等信息,这两块芯片有一块正常情...

2020-04-29 10:33:06 5293 5

原创 BC26接入电信云平台流程

目录前言一、电信平台注册二、BC26串口收发三、注意事项前言最近一直在做NB模块对接电信云平台的项目,在此分享下NB模块接入云平台流程,这次介绍的是移远BC26芯片,电信的云平台也换到了他们的新平台。一、电信平台注册 登录电信新平台后(https://www.ctwing.cn/page.html#/aepuserhelp),先创建产...

2019-12-29 18:22:50 4798 1

转载 转 各大OJ题目分类

https://blog.csdn.net/huangshuai147/article/details/70226061

2019-04-23 16:17:37 155

原创 汉诺塔问题补充分析

汉诺塔问题之前也介绍过了,不过总觉得理解不够深刻,今天看了清华的那版数据结构后,感觉还是有新的理解。书上的汉诺塔解法也是运用递归的方法,不过它介绍了系统是如何分配函数的运行控制权的。函数的调用其实在系统中也是放在栈中,后进先调用的思想。之前一直没理解好的原因,可能也是在于汉诺塔的解法两次用到递归,这样一层的函数会停留两次,所以容易混洗。 补充下,栈也是一种特殊的线性表...

2019-03-24 23:11:08 126

原创 HT1621驱动代码详细解析

之前篇博客已经介绍过ht1621这款驱动芯片,一般通用较多的芯片驱动代码,网上都有资源。但是若完全照搬而没有理解到位,或者忽略了细节。那么对于驱动的运用并不会那么到位甚至会犯很大的错误。下面有我的示例,驱动代码是网上移植的部分: STM32库中对于GPIO口的定义是对应相应寄存器的操作位的,所以一般都有16位即对应GPIO0-GPIO15,不知道这位作者是移植...

2019-03-24 23:03:20 9417

转载 转:二叉树的各种遍历(递归、非递归)

这篇博客对二叉树的各种遍历分析的非常到位,推荐大家可以去学习。https://blog.csdn.net/moli152_/article/details/48811163

2019-03-17 20:28:06 115

原创 HT1621液晶驱动

1. 概述HT1621是128点内存映象和多功能的LCD驱动器,HT1621的软件配置特性使它适用于多种LCD应用场合,包括LCD模块和显示子系统。用于连接主控制器和HT1621的管脚只有4或5条,HT1621还有一个节电命令用于降低系统功耗。在虎风所做的这个系统中ht1621用于驱动一个静态的LCD液晶显示器。液晶显示的方式分为静态显示和动态显示。静态与动态的区别在于静态显示是持续供电的,而...

2019-03-17 20:26:25 1147

原创 AT指令组帧方式

最近在编写NB模块的通信代码,其到具体应用就是编写AT指令,且格式基本固定。所以大多过程可以归结为组帧,即编写字符串。首先对字符串定义,这个一般就字符串数组,或者定义字符串指针,我是两者兼用。因为字符串数组对于AT指令便于理解,两者格式都为固定。字符串指针用于对应要上报或解析的数据帧,因为通常大小和内容都不固定。 之后便是常用的字符串拼接,复制等常用函数如memcpy或者...

2019-03-10 22:09:28 468

转载 TCP/IP详解

TCP/IP详解一、计算机网络的背景1.1 计算机的发展有人说:“20世纪最伟大的发明就是计算机”,自诞生伊始,计算机经历了一系列发展,从大型通用计算机、超级计算机、小型机、个人电脑、工作站以及现如今笔记本、平板、智能手机等,计算机已经彻底融入了我们的生活1.2 计算机的发展模式起初,计算机只是以单机模式(独立模式)被广泛应用,随着发展,计算机被一个个的连接起来,形成...

2019-03-10 21:49:12 366

原创 NB模组连接ONENET平台方法

最近做的项目是用NB模组作为通信模块连接ONENET云平台,采用MQTT通信协议。主要步骤有先是配网环节,模组上电发送一系列配网指令,大约24S左右可以连接到ONENET云平台。连接上后标记为联网状态,之后编写发送模块。发送数据主要采用AT指令为开头,无法像GPRS那样有透传模式。 发送指令的编写就是一个组帧的过程(主要对不同数据格式的操作),第一步获取CJSON格式需要发送的数...

2019-03-03 16:50:35 1963

原创 keil中查看寄存器值变化的步骤

用keil写单片机程序时,调试是必不可少的步骤。一般调试的时候我们会将变量的值放在窗口观察变量值变化情况,但有时候可能会需要到最底层直接看寄存器更为方便。例如在看GPIO口的输入输出状态时,我们可以在调试的时候看相应寄存器。打开观看寄存器的步骤如下,首先打开Peripherals选择要观察的寄存器,然后点View中的Periodic Window Updata,如下图所示:...

2019-01-24 10:42:24 10594

原创 NTC热敏电阻,错误检测显示

NTC热敏电阻作为温度传感器工作,其电路为与10K电阻串联,ADC检测的是串联电阻。NTC异常工作有两种即开路和短路,当开路时,检测到的串联电阻值为0,当短路时电压值即为电源电压值。其具体原理图如下:   当为开路时,检测电压值为0,则比例系数分母为0,则比例系数res值为无效值(1,#QNAN),此处的1.#QNAN是一个打印呈现,QNAN是指Quiet Not a Number。具体代...

2019-01-14 17:03:50 3239 4

原创 NB学习

一、NBIOT网络架构  这里使用华为开发者社区提供的信息来看NB-IoT端到端架构全貌。 1)UE(终端)与eNB/EPC(基站)之间:基于NB-IoT技术进行通信,分为AS和NAS,这部分基本完全由芯片实现。 2)UE与IoT云平台之间:一般使用CoAP/MQTT等物联网专用的应用层协议进行通信,主要是考虑了NB-IoT UE的硬件资源配置一般很低,不适合使用HTTP/HTTPs等复杂...

2019-01-06 19:22:38 381 1

原创 浅谈NB-IOT模块调试

 NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWA)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。据说NB-IoT设备电池寿命可以提高至至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。  NB-IOT聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。具有覆盖广、连接多...

2019-01-06 19:21:49 2294 1

原创 stm32L0系列LCD显示残影问题分析

       在使用STM32L053这款芯片做低功耗的LCD显示后,发现LCD显示总是存在残影,残影即那些未点亮的像素仍有一定显示,特别是当从侧面和上方观察时。因为做项目经验有限,所以开始时查找问题花费时间非常久也没发现。       因为是做嵌入式,出现问题不一定是软件的原因也可能是硬件问题(我开始一直偏向软件原因)。但一般都先分析软件方面,LCD的显示方式就不再赘述,首先分析就是LCD配...

2018-12-24 21:25:20 4497 1

原创 stm32之spi用法二

spi库函数介绍首先SPI的一些基本介绍参照相关芯片的库函数或者使用手册,以下介绍SPI库函数的基本用法和参数的定义。1.SPI_DeInit函数的功能是将外设SPIx寄存器重设为默认值。输入参数SPIx可以是1和2,是用来选择SPI外设的。2.SPI_Init函数的功能是根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器。SPI_InitDefType的结构体是定...

2018-12-23 19:40:57 872

原创 stm32之spi用法一

SPI的简介SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB...

2018-12-23 19:39:15 2666 1

原创 STM32之SPI介绍

SPI的基本介绍SPI的简介SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的...

2018-12-16 19:36:38 1967

原创 STM32 FLASH读写

一:对STM32内部FLASH写进行编程操作,需要遵循以下流程:  1.FLASH解锁  2.清除相关标志位  3.擦除FLASH(先擦除后写入的原因是为了工业上制作方便,即物理实现方便)  4.写入FLASH  5.锁定FLASH (1)获取状态:FLASH_Status FLASH_GetStatus(void);返回值是通过枚举类型定义的。  typedef enum{...

2018-12-16 19:34:11 1562

原创 冒泡排序算法中几种交换值方法

     排序算法有很多种,一般接触最多的便是冒泡排序。冒泡排序原理就不再赘述,排序后的调换位置,有以下几种写法,都是不借助第三个变量来交换两个变量。   第一种最为简洁,一行代码即可实现交换,其关键操作便是运用括号运算的优先级。 第二种便是运用异或的方法,第一次运用可能会有疑惑,但你去仔细按位分析便可得到结果: ...

2018-12-09 21:53:03 323

原创 STM32中低功耗LCD显示

    最近是在做一款温控器,主要分为LCD按键与显示,通信模块以及低功耗。因为需要APP能够开关机和进行相关设置,故把低功耗设置为RTC唤醒模式,每过1S进行唤醒准备接受数据,若没检测到前导码则继续睡眠。在开启屏幕后,还有熄屏模式,即LCD在低功耗下仍然显示。实现的时间和温度也会刷新,也是利用RTC每次的唤醒做读取RTC时间以及开启ADC检测,通过热敏电阻变化来获取当前温度值。具体代码实现如下:...

2018-12-09 21:45:44 2868 1

原创 C语言之队列,环形数组-比链表容易多了

环形队列实现 ①定义一个结构体:typedef struct{    u16 Head;               u16 Tail;    u16 Lenght;    u8 Ring_Buff[RINGBUFF_LEN];}RingBuff_t;RingBuff_t ringBuff;//创建一个ringBuff的缓冲区②初始化结构体相关信息:使得我们的环形缓...

2018-12-02 17:53:56 801

原创 C语言指针详解

阅读目录前言 这些指针都是恶魔吗? 青铜(答对所有题升至该段位,正确率100%) 青铜题解 白银(答对4题升至该段位,正确率80%) 白银题解 黄金(答对7题升至该段位,正确率70%) 黄金题解 钻石(答对6题升至该段位,正确率75%) 钻石题解 大师(答对5题升至该段位,正确率62.5%) 大师题解 结语 回到顶部前言相信大多数的同学都...

2018-12-02 17:41:06 258

原创 STM32中RTC唤醒停止模式

        在STM32的低功耗模式中,有一种RTC停止模式,可以通过RTC计时产生的中断来唤醒。主要步骤为:       1.配置低功耗的引脚,设置为模拟状态,关各种时钟       2.开启RTC唤醒事件,配置RTC产生中断的时间长度       3.进入RTC停止模式,等待RTC的中断产生      4.RTC中断产生后,唤醒停止模式   具体代码如下: ...

2018-11-25 21:13:34 4010 1

原创 STM32的低功耗模式

   这几篇日志将详细记录,自己应用stm32进行低功耗设计的全过程。    使用芯片:STM32L053R8T6    运行模式:        Range 1:电源电压限制在1.71-3.6V,CPU最大运行频率为32MHz。        Range 2:CPU最大运行频率为16MHz。        Range 3:CPU最大运行频率4.2MHz    低功耗模式:...

2018-11-25 20:16:49 765

原创 STM32L0系列的ADC用法

         AD转换即模拟信号转换为数字信号,一般在单片机中模拟信号对应电压,通过ADC口将相应的电压转换为二进制的数字信号,从而推算出测得电压。下面我介绍下STM32中L0系列调用库函数来实现AD转换。        首先最基本的AD转换模式,即单次单通道检测,且不用到DMA。L0系列一共有19个AD口对应19个AD通道,其中16到18为检测内部模拟信号的通道。下面代码中用到是PA0即...

2018-11-16 20:23:03 8367

原创 stm32中非阻塞式多按键状态检测函数(2)

关于GPIO的输出功能之前我们已经有了一定的了解 这次通过按键输入对GPIO输入功能做实际应用主要内容:    按键输入的硬件连接    读取IO输入的相关函数    捕捉按键状态的步骤    按键扫描实现思路    按键扫描程序代码一,硬件连接     如图,有4个按键,分两组 第一组:WK_UP连接VCC 第二组:KEY0,KEY1,KEY2连接GND12确...

2018-11-10 18:24:46 980

原创 stm32中非阻塞式多按键状态检测函数(1)

       最近做的项目中,关于按键检测调用比较多,因此我也做个适当用法总结。按键状态检测的原理,一般都是通过读相应IO口位是否置位来判断是否按下,并且用延时来消抖以及区分长短按。根据延时的用法,也可以区分为阻塞式和非阻塞式。阻塞式即在延时过程中一直等待到计数值,CPU一直被占用无法去执行别的过程,一般这样是不太合理的设计。所以我们都采用非阻塞式,即用轮询的方式去判断是否延时时间到达,其具体代码...

2018-11-10 17:58:00 2410 1

原创 指针拓展

1,为什么要用到链表数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数组,有时需要5 0个数组的大小,难于统一。我们只能够根据可能的最大需求来定义数组,常常会造成一定存储空间的浪费。我们希望构造动态的数组,随时可以调整数组的大小...

2018-11-04 20:17:25 149

原创 链表使用介绍

1,为什么要用到链表数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数组,有时需要5 0个数组的大小,难于统一。我们只能够根据可能的最大需求来定义数组,常常会造成一定存储空间的浪费。我们希望构造动态的数组,随时可以调整数组的大小...

2018-11-04 19:41:30 237

原创 LCD库函数使用

        博主本人之前一直使用的是F10系列的STM32芯片,这次项目需要用到LCD显示,故选用了STM32的L053芯片其IO口自带LCD驱动功能。使用新的一款芯片,首先当然是下官方手册(官网英文版过于简洁,中文版的比较适合初学者),然后找相似例程进行分析。        当然关于LCD显示的原理,这里就不过多赘述了,我之前一篇博客已经详细介绍过了。下面我就结合例程来分析下,如何用库函...

2018-10-29 22:05:09 4128 2

原创 LCD显示原理

液晶显示器是什么?不同的应用环境,有不同的说法,车载显示屏,笔记本电脑上的显示器,手机屏,露天广告机屏幕等。时至今日,液晶显示器,对于一般普罗大众,已经不再是生涩的名词。而它更是继半导体后另一种可以再创造大量营业额的新兴科技产品,更由于其轻薄的特性,因此它的应用范围比起原先使用阴极射线管(CRT, athode-ray tube)所作成的显示器更多更广。 如同前面所提到的,液晶显示器泛指一...

2018-10-29 10:10:37 16763

原创 NB-IOT模块

一、NB-IOT简介万物互联的时代正以极其迅速的脚步走进我们的生活,据估计2020年大约有500亿台设备连接到互联网。而实现万物互联的基础之一在于安全、可靠的数据传输。随着5G技术方案逐渐落地,世界各地巨头支持的NB-IoT(窄带蜂窝物联网)首当其冲无疑是物联网无比渴望的一个强有力的蜂窝基础网络,市场前景广阔,应用场景丰富。NB-IoT或将成为最热的创客发展方向。NB-IoT(Narrowb...

2018-10-15 08:14:57 1425

原创 Lora网络

根据Semtech公司关于“什么是LoRa”翻译czq原创翻译,转载请注明来自万联社区。bbs.iseniot.com=============什么是LoRa?LoRa:低功耗无线广域网是建立世界各地IoT网络的主流技术选择。智能物联网应用改善了我们的生活方式,并且正在解决城市和社区面临的一些挑战:气候变化,污染控制,自然灾害预警和生命急救。企业也通过改进运营和效率以降低成本获...

2018-10-15 08:12:10 1570

rtklib时序图.pdf

RTKLIB源码单点定位函数时序图,高清图,用于分析单点定位函数。 上个月基本都是在分析RTKLIB的源码,评估移植到stm32上的可能性。最后结论认为是内存可能会不够,移植源码难度也较大。下面分享下对RTKLIB源码分析的过程把,帮助大家少走点弯路。网上大部分都是对单点定位部分的源码解析,我能找到的资料也是关于该部分。

2020-06-05

空空如也

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

TA关注的人

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