LIN 总线开发知识总结

LIN总线介绍

LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。其目标定位于车身网络模块节点间的低端通信,主要用于智能传感器和执行器的串行通信,而这正是CAN总线的带宽和功能所不要求的部分。

阅读全文

CAN协议简介

CAN 简介

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

阅读全文

CAN协议简介

CAN 简介

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

阅读全文

Android学习笔记6——文件存储

SharePreferencrces存储

阅读全文

Numpy学习笔记

Numpy数组—Array
Numpy的主要对象是多维数组。它是一个由元素(通常是数字)构成的表,所有元素的类型相同。维度的数量称为数组的阶(rank),数组的大小是一个由整型数构成的元组,可以描述数组不同维度上的大小。

阅读全文

Python3

客户端/服务器架构

服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的“服务”。它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求。

阅读全文

Python3基础 正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
本章节主要介绍Python中常用的正则表达式处理函数。

阅读全文

无人机基础知识总结

Pitch/Yaw/Roll的区别
机体坐标系:固定在飞行器上的坐标系,一般沿机身方向为X轴,沿机翼方向为Y轴,垂直机身方向为Z轴,
下面说的旋转都是指沿机体坐标系。
Pitch:俯仰,将物体绕Y轴旋转,表现出来的动作就是机头向上仰或者向下俯冲。
Yaw:航向,将物体绕Z轴旋转,表现出来的动作就是飞行器在绕中心旋转,航向改变。
Roll:横滚,将物体绕X轴旋转,表现出来的动作就是飞行器两边晃动。

阅读全文

FreeRTOS 内存管理

内存管理是一个系统基本组成部分, FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量、队列等会自动从堆中申请内存。用户应用层代码也可以 FreeRTOS 提供的内存管理函数来申请和释放内存,

  • 内存管理简介
  • 内存碎片
  • heap_1 内存分配方法

阅读全文

TI锂离子电池组管理器 电量监测计BQ40Z50-R1学习笔记

阅读全文

TI单节电量计基本介绍

TI单节电量计基本介绍及常见问题解答

标签(空格分隔):


阅读全文

锂电池充电电压与充电电流设定

image

有上图可以看出,锂电池充电电流和电压是动态变化的,这是由锂电池本身的化学物质决定的。所以需要根据锂电池本身的充电特性来配置充电IC的性能,以达到正确,安全,高效的使用锂电池。日常表述中的“锂电池充电电流”是针对锂电池在充电过程中所处快速充电阶段的充电电流而言的,作为一个动态的过程,锂电池最理想充电电流实际上是分为三个阶段的。常用锂电池充电IC如TP4012A、TP8052、TP8056,本文最后处有部分介绍。
几种不同充电状态的性能描述

阅读全文

锂电池充电原理

锂离子电池的充电过程可以分为四个阶段:涓流充电(低压预充)、恒流充电、恒压充电以及充电终止。
锂电池充电器的基本要求是特定的充电电流和充电电压,从而保证电池安全充电。增加其它充电辅助功能是为了改善电池寿命,简化充电器的操作,其中包括给过放电的电池使用涓流充电、电池电压检测、输入电流限制、充电完成后关断充电器、电池部分放电后自动启动充电等。

阅读全文

FreeRTOS 任务通知

从 v8.2.0 版本开始, FreeRTOS 新增了任务通知(Task Notifictions)这个功能,可以使用任务通知来代替信号量、消息队列、事件标志组等这些东西。使用任务通知的话效率会更高,本章我们就来学习一下 FreeRTOS 的任务通知功能,本章分为如下几部分:

  • 任务通知简介

阅读全文

FreeRTOS 软件定时器

定时器可以说是每个 MCU 都有的外设,有的 MCU 其定时器功能异常强大,比如提供 PWM、输入捕获等功能。但是最常用的还是定时器最基础的功能——定时,通过定时器来完成需要周期性处理的事务。 MCU 自带的定时器属于硬件定时器,不同的 MCU 其硬件定时器数量不同,因为要考虑成本的问题,FreeRTOS 也提供了定时器功能,不过是软件定时器,软件定时器的精度肯定没有硬件定时器那么高,但是对于普通的精度要求不高的周期性处理的任务来说够了。当 MCU 的硬件定时器不够的时候就可以考虑使用 FreeRTOS 的软件定时器。

阅读全文

FreeRTOS 事件标志组

使用信号量来同步的话任务只能与单个的事件或任务进行同步。有时候某个任务可能会需要与多个事件或任务进行同步,此时信号量就无能为力了。 FreeRTOS 为此提供了一个可选的解决方法,那就是事件标志组。

  • 事件标志组简介
  • 创建事件标志组
  • 设置事件位

阅读全文

FreeRTOS 信号量

信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步, FreeRTOS中信号量又分为二值信号量、 计数型信号量、互斥信号量和递归互斥信号量。

信号量简介

信号量在共享资源访问中的使用,信号量的另一个重要的应用场合就是任务同步,用于任务与任务或中断与任务之间的同步。 在执行中断服务函数的时候可以通过向任务发送信号量来通知任务它所期待的事件发生了。当退出中断服务函数以后在任务调度器的调度下同步的任务就会执行。在编写中断服务函数的时候我们都知道一定要快进快出,中断服务函数里面不能放太多的代码,否则的话会影响的中断的实时性。

阅读全文

FreeRTOS 队列

在没有操作系统的时候两个应用程序进行消息传递一般使用全局变量的方式,但是如果在使用操作系统的应用中用全局变量来传递消息就会涉及到“资源管理”的问题。FreeRTOS对此提供了一个叫做“队列”的机制来完成任务与任务、任务与中断之间的消息传递。

  • 队列简介
  • 队列结构体

阅读全文

FreeRTOS 空闲任务

空闲任务是 FreeRTOS 必不可少的一个任务,其他 RTOS 类系统也有空闲任务,比如 uC/OS。看名字就知道,空闲任务是处理器空闲的时候去运行的一个任务,当系统中没有其他就绪任务的时候空闲任务就会开始运行,空闲任务最重要的作用就是让处理器在无事可做的时候找点事做,防止处理器无聊,因此,空闲任务的优先级肯定是最低的。当然了,实际上肯定不会这么浪费宝贵的处理器资源, FreeRTOS 空闲任务中也会执行一些其他的处理。

阅读全文

FreeRTOS 低功耗Tickless模式

很多应用场合对于空耗的要求很严格,比如长期无人照看的数据采集仪器,可穿戴设备等。其实很多 MCU 都有相应的低功耗模式,以此来降低设备运行时的功耗,进行裸机开发的时候就可以使用这些低功耗模式。但是现在我们要使用操作系统,因此操作系统对于低功耗的支持也显得尤为重要,这样硬件与软件相结合,可以进一步降低系统的功耗。这样开发也会方便很多,毕竟系统已经原生支持低功耗了,我们只需要按照系统的要求来做编写相应的应用层代码即可。 FreeRTOS 提供了一个叫做 Tickless 的低功耗模式,

阅读全文