自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 freertos:资源管理

在前面讲解互斥量时,引入过临界资源的概念。在前面课程里,已经实现了临界资源的互斥访问。本章节的内容比较少,只是引入两个功能:屏蔽/使能中断、暂停/恢复调度器。要独占式地访问临界资源,有3种方法:(1)公平竞争:比如使用互斥量,谁先获得互斥量谁就访问临界资源,这部分内容前面讲过。(2)谁要跟我抢,我就灭掉谁:a.中断要跟我抢?我屏蔽中断b.其他任务要跟我抢?我禁止调度器,不运行任务切换。

2025-11-05 16:16:51 27

转载 freertos:中断管理

在RTOS中,需要应对各类事件。这些事件很多时候是通过硬件中断产生,怎么处理中断呢?假设当前系统正在运行Task1时,用户按下了按键,触发了按键中断。a.保存现场:Task1被打断,需要先保存Task1的运行环境,比如各类寄存器的值b.分辨中断、调用处理函数(这个函数就被称为ISR,interrupt service routine)c.恢复现场:继续运行Task1,或者运行其他优先级更高的任务你要注意到,ISR是在内核中被调用的,。

2025-11-05 15:59:32 67

转载 freertos:事件组

本章涉及如下内容:事件组的概念与操作函数事件组的优缺点怎么设置、等待、清除事件组中的位使用事件组来同步多个任务。

2025-11-05 09:50:54 33

转载 freertos:软件定时器

本章涉及如下内容:软件定时器的特性定时器命令队列一次性定时器、周期性定时器的差别怎么操作定时器:创建、启动、复位、修改周期。

2025-10-22 15:17:30 28

转载 freertos:任务通知(task notification)

所谓"任务通知",你可以反过来读"通知任务"。我们使用队列、信号量、事件组等等方法时,并不知道对方是谁。使用任务通知时,可以明确指定:通知哪个任务。使用队列、信号量、事件组时,我们都要事先创建对应的结构体,双方通过中间的结构体通信:使用任务通知时,任务结构体TCB中就包含了内部对象,可以直接接收别人发过来的"通知":本章涉及如下内容:任务通知:通知状态、通知值任务通知的使用场合任务通知的优势。

2025-10-22 12:53:17 30

转载 freertos:互斥量(mutex)

(1)量:值为0、1(2)互斥:用来实现互斥访问(1)即使任务A获得了互斥锁,任务B竟然也可以释放互斥锁。(2)谁上锁、谁释放:只是约定。

2025-10-20 16:54:15 65

转载 freertos:信号量

队列可用于传输数据:在任务之间、任务和中断之间。消息队列用于传输多个数据。只需要传递状态,状态值用一个数值表示,这时候,只需要维护一个数值,使用信号量效率更高、更节省内存。本章涉及如下内容:怎么创建、删除信号量怎么发送、获得信号量什么是计数型信号量?什么是二进制信号量?

2025-10-20 15:42:53 23

转载 freertos:队列

队列(queue)可以用于"任务到任务"、“任务到中断”、"中断到任务"直接传输信息。

2025-10-17 17:01:26 37

转载 freertos中同步互斥与通信

然后任务B也调用LCD_PrintString,任务B执行到第4行时发现bCanUse为1并把它减为0,执行到第5行代码时发现条件成立可以进入if语句块使用LCD,然后任务B也被切换出去了;假设如下场景:有两个任务A、B都想调用LCD_PrintString,任务A执行到第4行代码时发现bCanUse为1,可以进入if语句块,它还没执行第6句指令就被切换出去了;所以使用串口时,应该是这样:A用完,B再用;在团队活动中,同事A已经使用会议室了,经理B也想使用,即使经理B是领导,他也得等着,这就叫互斥。

2025-10-16 09:52:13 26

转载 freertos中任务管理

要注意的是:(1)这个函数不能返回(2)同一个函数,可以用来创建多个任务;换句话说,多个任务可以运行同一个函数(3)函数内部,尽量使用局部变量:a.每个任务都有自己的栈b.每个任务运行这个函数时,任务A的局部变量放在任务A的栈里、任务B的局部变量放在任务B的栈里不同任务的局部变量,有自己的副本c.函数使用全局变量、静态变量的话只有一个副本:多个任务使用的是同一个副本要防止冲突(后续会讲)/* 对于不同的任务,局部变量放在任务的栈里,有各自的副本 */

2025-10-15 16:01:33 54

原创 freertos中数据类型和编程规范

FreeRTOSConfig.h中定义configUSE_16_BIT_TICKS时,TickType_t就是uint16_t。否则TickType_t就是uint32_t。对于32位架构,建议把TickType_t配置为uint32_t。tick count这个变量的类型就是TickType_t。TickType_t可以是16位的,也可以是32位的。32位架构中,它就是uint32_t。16位架构中,它就是uint16_t。宏的名字是大小,可以添加小写的前缀。8位架构中,它就是uint8_t。

2025-10-15 10:22:36 169

原创 三极管的符号和电流说明

三极管符号及导通

2025-10-09 15:14:22 288

原创 FOC算法原理

把TS时间,除去T4和T6的时间,就是零矢量时间,把零矢量时间平均分成2分, 分给T7和T0。虽然α与β坐标系下少了一维变量,但是新的变量还是非线性(正弦),有没有办法把它线性化呢?控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。SPWM不依赖开关顺序,3相独立调制,类似开环控制,是没有反馈的,只管生成正弦波。(1)SPWM调试方式在FOC实现中并不常用,原因是SPWM要比后面要说的。foc即为磁场定向控制,又为 磁场矢量控制。PARK变化就是做这个的。

2025-09-22 15:52:22 380

原创 freescale codewarrior中关于can的配置

飞思卡尔中can配置,使用codewarrior

2025-09-07 13:04:42 270

原创 PID调节

PID调节

2025-08-19 13:27:22 204

原创 关于步进电机的理解

电机转子是一根永磁体棒的两极,分别套一个50个齿的齿轮帽,两极的齿轮交错布置。通过这样的布置,转动周期不再是360度,而是转过一齿的角度(360/50=7.6度)。这就是最常见的步距角1.8度的步进电机。3.如果电机的控制PWM信号频率为10KHz,Microstep是16,那么步距角是1.8/16=0.1125度。但是有细分功能的驱动器可以改变步进电机的固有步距角,达到更大的控制精度、降低震动及提高输出转矩。可进行超微小角度,更加平滑的运转,有效降低震动和噪音的驱动方法。正点原子的视频,讲解的很清楚。

2025-08-07 08:33:50 287

原创 杰发六步换相无感(反电动势)驱动电机 CTU模块作用

本文介绍了六步换向无感驱动原理及系统实现方案。核心是通过捕获反电动势过零信号实现转子位置检测,采用30°电角度延迟换相控制。系统架构包含三相绕组、分压网络、比较器、电流采样等模块,通过CTU实现信号捕获和PWM控制。设计建议包括增加RC滤波抗干扰、微调换相延迟角等优化措施。系统信号流程为:反电动势过零→ACMP→CTU捕获→延迟计算→PWM换相→驱动电机。该方案实现了无感驱动的高效控制。

2025-07-31 11:28:27 476

转载 直流无刷电机无感驱动(反电动势检测,六步换向)

BLDC无感原理:如何控制换向及确定换向时刻

2025-07-28 13:45:14 776

原创 AC7811--ACMP

【代码】AC7811--ACMP。

2025-07-17 16:48:32 154

原创 SPI操作eeprom(CAT25160) chipon

【代码】SPI操作eeprom(CAT25160) chipon。

2025-06-17 16:20:44 210

转载 数组指针和指针数组

]优先级高于*,所以int *p1[5]主体是一个数组,里面存放的成员变量是指针。int (*p2)[5]主体是一个指针,指向一个数组。

2025-05-15 14:04:57 40

原创 Intel、Motorola_MSB、Motorola_LSB

intel motorola_LSB motorola_MSB

2025-03-20 13:49:44 1216

原创 s32k144 adc pdb

在adc和pdb配合使用,对数据进行连续采集存储时,有个channel采集的值时有时无。红框中是ADC真实通道,依次对应于pdb1从0->7的索引值。adc使用有个限制,正常采集通道放前面, 参考电压放在最后。

2025-03-07 12:01:44 274

原创 数据拷贝:指针

【代码】数据拷贝:指针。

2025-02-06 11:25:09 197

原创 如何获取内核中某个变量的地址

如何获取内核中变量地址

2025-01-14 15:34:01 342

原创 仪表盘MIL和SYS灯的激活和熄灭

首先我们一起来了解一下后处理故障灯的激活与熄灭规则以及故障码的清除。2、对于由于后处理系统缺少反应剂激活故障指示器时,在反应剂贮存罐加满之后,故障指示器会立即恢复到激活之前的状态。1、非不可删除代码:经过连续40个暖机循环(WUC)或100个发动机运行小时后清除;车完成点火,运转(若车辆存在故障应能被检测到),熄火的完整过程称为一个驾驶循环;发动机冷却液温度至少上升22度且至少达到70度的驾驶循环被认为一个暖机循环。1、经过连续的3个DC或24个发动机运行小时后熄灭。MIL 第3个驾驶循环(DC)亮。

2024-12-18 09:18:19 937

原创 如何验证mos管好坏

mos管好坏判断

2024-09-05 10:15:43 316

原创 C语言实现奇偶校验位的计算

奇偶校验位的c语言实现

2024-05-16 16:35:11 334 1

原创 同相和反相放大电路分析

放大电路分析

2024-05-16 16:02:15 4743

原创 app调用系统接口示意图

(2)产生异常后,然后再调用接口sys_open()、sys_read()、sys_write()、sys_close(),里面参数:根据文件名判断是普通文件还是设备文件,3.在系统调用接口之上,还存在标准IO:fopen、fread、fwrite、fclose。(1)app访问内核通过调用glibc中的系统调用接口(open()、read()、write()、close()),(3)若是设备文件,找到驱动程序open,调用drv_open(),操作硬件。2. 系统调用是应用程序和系统内核之间的接口。

2024-03-19 17:02:04 497

原创 gcc编译头文件 库 运行时指定库的目录

2024-03-19 16:22:32 431

原创 gcc编译头文件 库 运行时指定库的目录

2024-03-19 15:34:32 233

原创 linux内核

Linux操作系统中,几乎任何东西都可以看作为一个文件,内核中大量使用Kobject等结构体,把一堆非结构化的硬件组织成一种多层次的数据系统。Linux内核是一个庞大而复杂的操作系统的核心,犹如人的大脑一样,处理各种各样的请求,且具备五大模块化功能,其中包括:进程管理、内存管理、文件系统管理、设备控制和网络管理。Linux内核负责进程创建和销毁,并完成进程之间的通信,以及进程的输入和输出;而且,进程管理控制了多个进程对Soc上的一个或者多个CPU资源的使用。

2024-03-14 13:44:23 438

原创 J1939中的PGN和SPN

PDU由数据帧中的ID和数据场组成,数据帧和PDU的对应关系如下图所示。**PS(PDU Specific),特定协议数据单元字段,**当PF的值为0-239时PS表示目标地址(PDU1格式),当PF的值为240-255时PS字段表示组扩展(PDU2格式),且报文只能广播。第一个字节是18,转为二进制是 0001 1000,可以看到优先级是110(对应十进制的6),EDP=0,DP=0。第一个字节是0c,转为二进制是 0000 1100,可以看到优先级是011(对应十进制的3),EDP=0,DP=0。

2024-01-26 14:36:53 8631 5

转载 pcb画图流程

在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f51b4e87acc84abfb50d5ac82793ddec.png)

2024-01-23 17:03:27 314

原创 推挽输出和开漏输出

3.开漏输出:把下面两种状态拿出来,上面mos管都是关闭的,所以可以认为是不存在的。如果芯片控制引脚只能输出5v,但是要控制3.3v芯片引脚。当Q2关闭时,输出高阻态。推:Q1打开,Q2关闭,输出高电平。箭头方向是电流方向,把电流推出去。挽:Q1关闭,Q2打开,输出低电平。箭头方向是电流方向,把电流挽回来。Q2相当于是啥也没接,所以这个模式被称为开漏模式。当Q2打开时,输出低电平。Q2和Q4只要有任意一个打开,输出是低电平。若配置成推挽输出,mos管会被烧毁。Q2和Q4全关闭,输出是高电平。

2024-01-23 11:29:52 1056

原创 冒泡排序程序

【代码】冒泡排序程序。

2024-01-23 09:27:25 392

原创 程序升级过程踩过的坑

1.当在app跳转到boot前(系统复位前),一定要关闭看门狗。防止由app跳转到boot后,由于看门狗继续复位,造成程序刷写失败。3.在boot中一定要先关中断,再重置中断向量表。2.设定看门狗复位周期时,要充分考虑到代码中的最大耗时操作。

2024-01-19 14:37:34 667

原创 ac7811---can1

本例程使用的是快恢复,一旦发生canbusoff后立刻重新初始化can。ac7811官方例程中写的比较全面,有快恢复和慢恢复,可参考。

2024-01-19 11:33:50 680

原创 AC7811----ADC

【代码】AC7811----ADC。

2024-01-18 16:54:25 506 1

ac7811-硬件i2c-FM24C16D

ac7811-硬件i2c-FM24C16D

2024-01-18

codewarrior相关资料及注意事项

有较为详细的codewarrior的使用方法。尤其是PE自动生成代码功能。

2024-01-18

使用stm32f407和stm32f103板子进行can通信

使用stm32f407和stm32f103板子进行can通信

2022-07-18

空空如也

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

TA关注的人

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