10 无痕幽雨

尚未进行身份认证

我要认证

宠辱不惊,看庭前花开花落! 去留无意,望天上云卷云舒!

等级
TA的排名 3k+

【解惑】到底是“时间片“?还是“分时轮询“?

1、任务调度任务调度对于电子类或者自动化类专业小伙伴最早接触一般都是在接触RTOS后了,然而对于计算机相关专业的小伙伴应该在学《计算机操作系统》老师对这一块讲解的非常清楚了,包括一些性能指标的定义与计算等等,不过作者这里仅仅只针对RTOS进行讲解,大家感兴趣可以找一下操作系统的书籍更加深入学习。大家都知道我们的操作系统可以隐蔽底层实现,为用户提供API接口来供我们的应用程序服务,同时操作系统可以管理多个任务实现CPU的最大利用率,然而对于RTOS提供的最主要功能就是任务的调度来管理多...

2020-07-02 09:03:48

ARM Cortex-M 系列 MCU错误代码自动追踪库(CmBacktrace)的使用经验分享

大家在用STM32的时候有没有遇到过HardFault的问题呢:之前有一段时间被这个问题困扰了很久,下面针对这个问题做个小总结。现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会跑到 HardFault_Handler函数中,产生 HardFault,即硬错。其产生的原因大概有如下几类:(1)数组越界操作;(2)内存溢出,访问越界;(3)堆栈溢出,程序跑飞;(4)中断处理错误;针对HardFault问题的定位,网上有几种方法,大概都是围绕着:在debug模式下,查看一些

2020-06-08 10:56:10

Modbus 通信协议详解

一、Modbus 协议简介  Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。  当在...

2020-05-17 16:40:19

红外遥控编码与解码

随着家用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家电产品上(如遥控开关、智能开关等)。其具有体积小、抗干扰能力强、功耗低、功能强、成本低等特点,在工业设备中也得到广泛应用。  一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示:  其中发射部分主要包括键盘矩阵、编码调制、红外发射管;接收部分包括光、电信号的转换以及放大、解调、解码电路。举例来说,通常我...

2020-05-03 10:10:45

光耦主要参数和高速光耦如何选型

高速光耦介绍  电耦合器(简称光耦)是开关电源电路中常用的器件。光电耦合器分为两种:一种为非线性光耦,另一种为线性光耦。  常用的4N系列光耦属于非线性光耦,常用的线性光耦是PC817A—C系列。  非线性光耦的电流传输特性曲线是非线性的,这类光耦适合于弄开关信号的传输,不适合于传输模拟量。线性光耦的电流传输手特性曲线接进直线,并且小信号时性能较好,能以线性特性进行隔离控制。  开...

2020-04-15 18:27:23

CSMA/CA组网算法浅谈

一直在做物联网这块,前几年只是写应用层,对于组网的一些算法只能说知道,具体的实现不是很了解。最近正好有个小型的物联网项目,于是就自己写了一套组网算法,经过尽半年的测试,磕磕碰碰总算上线了,记录下,也算是给自己的一个阶段性总结吧。一、算法选择首先根据时间来划分,分为TDMA算法和CSMA/CA算法;根据有无中心节点,又可分为有AP网和无AP网络;根据多跳路由算法,又可分为集中...

2020-04-13 14:56:11

STM32G0系列的Flash标志位PGSERR和PGAERR上电置位

此篇博客主要讲解STM32G0系列的Flash操作,没啥技术含量,老鸟直接发过就好了。首先将Flash怎么操作,然后再讲标题中的问题及解决思路。一、Flash操作我建议大家先看编程手册的Flash这章,等有一个操作Flash的大概的流程概念(不需要记住所有的操作步骤,因为有库),再去看库操作历程(这是我个人的习惯,只是给大家提个建议)。1、首先来看Flash基本知识...

2020-04-07 12:52:49

Lora1278驱动V4.4.2讲解一:驱动移植

注意,此版本驱动Lora原厂已经不更新和维护了,反馈的任何软件问题,原厂就是一句话升级新的驱动新驱动下载地址:https://github.com/Lora-net/LoRaMac-node但是这个驱动作为学习Lora使用,对于初学者入门来说还是很有帮助,应为它相对来说简单易懂。至于新驱动,以后再开篇博客讲解。一、大体驱动讲解二、涉及到的文件里面有两个文件夹:pl...

2020-03-30 22:09:53

STM32——高级定时器、通用定时器、基本定时器的区别

STM32——高级定时器、通用定时器、基本定时器的区别TIM1和TIM8定时器的功能包括【增强型】:● 16位向上、向下、向上/下自动装载计数器● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值● 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出● 死区时间可编程的互补输出...

2020-03-25 09:55:23

MDK-ARM编译器从V5升级到V6需要做哪些工作?

前面我分享过一篇文章【MDK v5.25比较实用的功能】,其中大概提了一下:编译器升级到ARM Compiler 6.9。就在前天,一关注我的朋友问了我这样一个问题:黄老师您好,前些日子您更新的公众号中介绍最新版本的keil5.25中提到了伴随更新的新编译器6.9。在简单的把原来的5版本编译器修改为6后,重新编译工程,出现了大量错误,并且大都包含在库文件中,请问您是否曾注意过这一点,并怎么...

2020-03-05 11:31:51

带你认识ARM最新的编译器AC6.12

本文结合MDK-ARMV5.27来讲述ArmCompiler6.12。1MDK升级内容MDK-ARMV5.27预览版已推出几个月:Keil MDK V5.27重大更新,预览版已上线在前不久终于推出V5.27正式版了,你们有安装试用吗?使用时,首先感觉的变化就是启动界面:此次正式版更新的内容,在预览版基础上有稍微变化,其中编译器从6.11升级为最新的6.12....

2020-03-05 11:20:37

编译器Clang会代替GCC吗?

Clang是一个C语言、C++、Objective-C语言的轻量级编译器,遵循BSD协议。Clang编译速度快、内存占用小、兼容GCC等一些优秀的特点使得很多工具都在使用它。今天就来谈谈Clang和GCC的异同。一、GCCGCC:GNU(Gnu's Not Unix)编译器套装(GNU Compiler Collection,GCC),指一套编程语言编译器,以GPL及LGPL许可证...

2020-03-05 10:20:01

基于FreeRTOS消息缓冲区,实现STM32H7双核之间通信的原理

FreeRTOS V10.3.1版本已发布,官方网站也更新了(大家可以去看看)。今天给大家分享的是:使用FreeRTOS消息缓冲区,实现简单的非对称多处理(AMP)核心到核心通信(STM32H7 双核处理器)。一、概述实现STM32H7双核之间通信是FreeRTOS官方提供的一个方案,是基于FreeRTOS消息缓冲区,该消息缓冲区是无锁循环缓冲区,可以将大小不同的数据包从单个发送方传递...

2020-03-05 10:08:57

什么是微服务?什么是分布式?

一、什么是微服务?微服务是一种面向服务的架构(SOA)风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞...

2020-02-27 15:18:48

通俗讲解:什么是容器?为什么我们要使用它?

作为程序员,让我们回忆我们每天从事的熟悉得不能再熟悉的软件开发工作:在本地搭好开发环境,进行开发工作,完了进行单元测试,把开发好的代码部署到测试系统,重复测试,最后部署到生产系统。我们不可避免地会遇到这种情况:同样的代码,运行环境发生变化之后无法正常运行。这种运行环境的变化可以分成不同的维度:比如代码从程序员的笔记本电脑切换到测试服务器,或者从一台物理服务器切换到公有云/私有云...

2020-02-24 17:12:01

电容耐压值

今天在调试一个很简单的AC-DC电源模块,AC220V转DC24V输出,电路图如下:用万用表测试发现输出是12.3V左右,去掉负载,测试还是12.3V,并且电感发热。初步判断是后端有短路的地方,但是后面就是C76和C77两个电容,难道电容坏了?仔细查看电容型号,发现C76应该焊接35V的,结果焊接成了10V的。换掉电容,一切正常。电容是一种存储电能的电子元件,在电路...

2020-02-15 13:13:03

“ID串行化”是如何保证消息顺序性的?

在《消息顺序性为何这么难?》中,介绍了一种为了保证“所有群友展示的群消息时序都是一致的”所使用的“ID串行化”的方法:让同一个群gid的所有消息落在同一台服务器上处理。ID串行化是如何实现的呢?互联网高可用常见分层架构客户端,反向代理层,接入层,服务层,存储层,这是互联网常见的高可用分层架构。画外音:这个图用过好多次。这里的“服务层”至关重要,ID串行化保...

2020-01-17 12:24:21

别再翻了,面试二叉树看这 11 个就够了~

出处:https://blog.csdn.net/qq_36903042/article/details/100798101写在前边数据结构与算法:不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面,一紧张,代码写的乱七八糟。如果遇到没有做过的算法题,思路也不知道...

2019-12-26 09:58:09

迪文屏幕学习笔记四:串口使用和定时器使用

我感觉迪文屏幕分两大类吧,指令屏和OS屏,指令屏幕只能通过UART指令交互和DWIN GUI交互;OS屏幕,则可以通过在屏幕上二次开发,来实现我们的功能,当然了,OS屏幕也支持UART指令和DWIN GUI交互,像指令屏那样开发。目前OS支持两到类开发:汇编开发和C语言开发。一、DWIN GUI交互串口2首先明确下串口电平,这个要看硬件手册,串口2是DWIN GUI的DEBUG...

2019-11-10 08:09:08

迪文屏幕学习笔记三:判定按下和抬起动作

先说功能需求,就是我有个按钮,需要判定用户是否有按下和抬起动作,已达到手动控制某个开关开启时间的目的。先看手册:根据以上内容,就可以实现我要的功能,于是我按着历程,区实验,确实实现了我要的功能,但是有个很大的问题,就是当我的OS编译代码超过1.8K时候,这个按键就失灵了,实验了各种各样的方法,最终没有解决。当我要放弃的时候,用两个按钮来实现这一个按钮功能,抱着...

2019-11-10 00:11:44

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。