Hexo


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

FreeRTOS信号量与信号量函数

发表于 2021-02-19
字数统计: 1.8k | 阅读时长 ≈ 6

什么是信号量

​ 信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量,计数型信号量,互斥信号量和递归互斥信号量。不同信号量其应用场景不同,但有些应用场景是可以互换着使用的。

​ 信号量的重要作用其中就有任务的同步,用于任务与任务之间的同步,用于中断与任务之间的同步。在执行中断服务函数的时候可以通过向任务发送信号量来通知它所期待的事情发生了,当退出中断服务函数以后在任务调度器的调度下同步的任务回去执行。

​ 在编写中断服务函数的时候一定是要快进快出的,中断服务函数中一般都不能放入太多的代码,否则就会影响系统的实时性。在裸机编写代码的时候一般都只是在中断服务函数中打一个标记,然后在其他的地方根据标记的值来进行具体的处理过程。而这些在RTOS中就可以借助信号量来进行实现。

​ 当中断发生的时候就释放信号量,但在中断服务函数中不做具体的处理。具体的处理过程做成一个任务,这个任务会获取信号量,如果获取到信号量就说明中断发生了,需要进行相应的处理,这样做的好处就是中断的时间会非常短。当然任务与任务之间也可以通过信号量来进行同步。

阅读全文 »

FreeRTOS队列与队列函数

发表于 2021-02-17
字数统计: 2.6k | 阅读时长 ≈ 9

什么是队列

​ 在实际的应用中,常会遇到一个任务或者中断服务需要和另外一个任务进行“沟通交流”。这个“沟通交流”的过程其实就是消息传递的过程。

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

​ 队列可以在任务与任务,任务与中断之间传递消息,队列中可以存储有限的,大小固定的数据项目。任务与任务,任务与中断之间的要交流的数据保存在队列中,叫队列项目。

​ 队列所能保存的最大数据项目数量叫做队列的长度,创建队列的时候会指定数据项目的大小和队列的长度。由于队列是用来传递消息的,所以又被称为消息队列。同时FreeRTOS中的信号量也是依据消息队列实现的。


阅读全文 »

利用CubeMX初始化TIM与串口并测试FreeRTOS的中断管理函数

发表于 2021-02-09
字数统计: 1.4k | 阅读时长 ≈ 6

测试

创建两个任务start_task()与interrupt_task(), 这两个任务的功能如下:

start_task():创建另一个任务

interrupt_task():中断测试任务,任务中会调用FreeRTOS的关中断函数portDISABLE_INTERRUPTS()来将中断关闭一段时间

CubeMX的配置

首先是FreeRTOS的配置

箭头处是FreeRTOS所能控制的最大和最低的优先级,高于或者低于这两个优先级的中断无法被FreeRTOS的中断控制函数控制

QQ20210209162857.png

创建好两个任务

阅读全文 »

通过CUBEMX来配置TIM定时器中断

发表于 2021-02-07
字数统计: 416 | 阅读时长 ≈ 1

CubeMX配置

首先是时钟的配置,这里选择外部晶振

QQ20210207005753.png

然后是系统,要选择Debug形式,然后时钟源这里选择系统的滴答定时器

QQ20210207005800.png

阅读全文 »

通过CUBEMX来创建STM32工程并点亮一个LED灯

发表于 2021-01-29
字数统计: 493 | 阅读时长 ≈ 1

CubeMX可以在ST的官方进行下载,下载最新版本的就好

HAL固件库文件的放置

下载好CubeMX之后将他打开,它的界面是这样的

QQ20210129150802.png

点击Help后可以设置下载的固件包文件的位置,最好自己添加一个新的文件夹来专门存储,不要放置在C盘

阅读全文 »

如何快速绘制一张PCB板并生产?

发表于 2021-01-27
字数统计: 1.9k | 阅读时长 ≈ 6

创建PCB工程项目

首先一个PCB文档应该分类准确

QQ2021012713354421be20835067724c.png

然后创建一个PCB工程

QQ20210127135429.png

之后再向PCB工程中添加文件

QQ20210127135350.png

一个PCB工程中需要包括:

  • 原理图
  • PCB
  • 原理图库
  • PCB封装库

至于PCB库与原理图库可以直接白嫖立创的也可以直接去淘宝上买别人已经创建好的

阅读全文 »

深深的进入当下3

发表于 2021-01-20
字数统计: 1.5k | 阅读时长 ≈ 4

所有问题都是时间的幻象

“也许我进入了当下,感到一个沉重的负担被卸下来了,顿时浑身轻松。我感觉到很清晰,但是仍然有许多问题在等待着我,不是吗?它们都还没有得到解决,我难道不是在暂时逃避这些问题吗?”

  • 这些与解决你的问题无关,而是要认识到现在没有任何问题。只有一些需要在当下处理掉,或者顺其发展并把它看作是当下本然面目一部分的某些情景,知道他们发生变化或可以处理了,采取采取行动。问题是思维创造的,它们需要时间来生存。在当下时刻的现实情况下,它们是无法生存的。现在把注意力集中在当下,你会发现当下时刻你不会有任何问题

  • 一个新的情景出现时,我们要么去应付他,要么就是去接受它,对它说”好的”。为什么要把它转变成一个问题呢?为什么要将任何事情都转变成问题呢?难道生活中的挑战还不够多吗?你需要问题来做什么呢?

  • 思维会无意识的喜欢上问题,因为他们给你某种身份的认同。这是正常的同时也是病态的。“问题”的意思是,你在心理上不断地琢磨某种情况,而没有真正地在当下采取行动,并且你还无意识的将它变成你自我感觉的一部分。你被你的生活情境所累倒,以至于丧失了对生命的感觉,存在的感觉。或者,你大脑中背负着100件你在未来将会或必须做的事情的重担,却没有将注意力集中在一件你现在就能做的事情上。

  • 如果你曾处于生死关头的紧急情况,你就会知道那不是个问题。思维没有时间来得及使它成为一个问题。在真正的紧急情况下,思维停止了;你完全临在于当下,被一种更为有力的东西接管了。这就是许多普通人突然能够做出令人难以置信的事的原因。在任何紧急情况下,你要么生存,要么死亡。无论何者,他都不是一个问题。简而言之就是Do or Die.

阅读全文 »

STM32直流电机驱动与编码器测速

发表于 2021-01-17
字数统计: 1.7k | 阅读时长 ≈ 6

1.什么是编码器

​ 编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上分,可以分为增量式编码器和绝对式编码器。
​ 从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。

​ 这里使用的编码器就是霍尔编码器

2.编码器原理

​ 光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器是由光码盘和光电检测装置组成。光码盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,检测装置检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。

​ 霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。

​ 可以看到两种原理的编码器目的都是获取AB相输出的方波信号,其使用方法也是一样,下面是一个简单的示意图。

20200725161723303.png
阅读全文 »

深深的进入当下2

发表于 2021-01-14
字数统计: 1.7k | 阅读时长 ≈ 5

汲取当下的力量

  • 无时间状态可以转变人类的感知。但是光有体验是不够的,不论他是多么美好或者深刻,。我们需要的和所关注的是意识层面的永久转变。
  • 把对当下时刻的意识作为一种习惯,当不需要关注过去和未来的时候,请把你的注意力从他们之中解放出来。
  • 在日常生活中,尽可能的从时间的意识中把自己解放出来。如果发现很难直接进入当下时刻,那么请你观察自己老想要脱离当下时刻的惯性开始。这样你将会体会到,你总是吧未来看的比现在更好或更坏。如果想象的未来比现在好,它会给你希望,或者让你愉悦地期待;如果他比现在更糟糕,则会让你焦虑————其实这二者都是幻象。
  • 通过自我观察,更多的临在意识会自动的进入你的生活当中。当你意识到自己没有在当下的那一刻起,你就在当下了。
阅读全文 »

深深的进入当下1

发表于 2021-01-12
字数统计: 808 | 阅读时长 ≈ 2

不在思维中寻找自己

  • 思维认同,它创造了一个虚假的自我,也就是小我,而这个虚假的自我替代了你真正的自我。而你真正的自我是根植与本体之中的。
  • 小我的需求是无止尽的。它感到自己很脆弱,容易受到威胁,所以他一直生活在一种恐惧和缺乏的状态中。
  • 小我喜欢将各种各样的的问题都转化为复杂的个人问题,它喜欢将自己与你的问题联系在一起,通过这种依托关系以便于加强它虚幻的自我感。所以,小我喜欢你无意识的大量地投资在痛苦和苦难中。
  • 一旦认识到无意识的根本原因是思维认同和情感认同,你就可以逐步走出这个阴影了。你可以进入当下,这时,你就会允许思维的存在而不陷思维的陷阱中了。思维本身是个很好的工具,但不要从大脑思维中寻找自己,并认为它就是我自己,如果那样的话,他就会变成一种小我的思维,并且控制你的整个生活。
阅读全文 »

STM32通用定时器驱动SG90舵机

发表于 2020-09-24
字数统计: 692 | 阅读时长 ≈ 2

SG90舵机的控制原理

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:

0.5ms————-0度;
1.0ms————45度;
1.5ms————90度;
2.0ms———–135度;
2.5ms———–180度;

0SubZR.gif

所以,通过单片机输出相应的PWM信号即可控制舵机旋转相应的角度

阅读全文 »
<i class="fa fa-angle-left"></i>12

23 日志
8 标签
© 2021 WJ
本站访客数 人次 本站总访问量 次