自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 从零开始掌握FreeRTOS(4)任务的动态和静态创建

前面我们已经梳理了 FreeRTOS 中链表的相关内容,从本篇开始,我们将学习什么是任务,以及动态和静态创建任务的方法。

2025-05-16 12:46:12 660

原创 从零开始掌握FreeRTOS(3)链表之插入和删除节点

上篇文章介绍了 FreeRTOS 关于链表的基本概念,本篇将介绍如何插入和删除节点。

2025-05-14 11:58:55 732

原创 从零开始掌握FreeRTOS——目录

本篇为该专栏的目录。为方便实现内容直达,在这里放上链接。

2025-05-13 17:37:08 125

原创 从零开始掌握FreeRTOS(2)链表之节点的定义

在上篇文章,我们完成了 FreeRTOS 的移植。在 FreeRTOS 中,所有功能被划分为任务。而任务则需要挂载链表上面。在本章,我们将掌握链表的各种节点类型。

2025-05-13 17:27:12 932

原创 从零开始掌握FreeRTOS(1)移植到STM32

本章我们将以STM32F103C8T6作为平台,移植 FreeRTOS。

2025-05-13 15:51:07 1241

原创 从零开始掌握FreeRTOS(序)裸机与RTOS的区别

RTOS,是中文名叫做 实时操作系统 ,这个专栏的主要内容则是掌握 FreeRTOS 。接下来,我们来对比一下它和裸机系统的区别,以及了解RTOS的优势,让我们清晰地认识到为什么要学习RTOS。

2025-05-12 16:26:48 730

原创 UDS全诊断服务解析

UDS名词解释及分析-优快云博客UDS诊断共分为6大类28种服务。通过UDS实现对汽车的数据读取以及保存故障环境及其详细数据等。

2025-04-13 13:22:06 62

原创 UDS名词解释及分析

UDS诊断可以看作是ECU与外部诊断设备间通讯的桥梁,国际标准(ISO14229)中定义了UDS的大致框架,共分为6大类28种服务。我们可以通过UDS实现对汽车包括但不限于 功能监控 、故障检测 、记录并存储故障信息 、读取数据 等功能。在实际使用上,当汽车出现故障时,维修工人们可以通过 UDS 诊断来甄别故障类型,并得知故障发生在什么条件下。因此,UDS 在汽车行业中十分重要。UDS所有诊断服务如下图所示。

2025-04-12 13:10:28 893

原创 AUTOSAR ETH模块(3)——接口功能分析

本文将按照我的理解,对以太网的数据发送流程进梳理,以求更容易理解整个模块、在研究接口的作用和类型之前,了解 ETH 的通信流程可以帮助我们理解接口的功能及其实现的操作。本章着重介绍与数据发送功能息息相关的接口。

2025-03-07 23:27:43 1124

原创 AUTOSAR ETH模块(2)——规范限制

首先,在包含以太网的项目中,一般会见到这几个模块一起出现:Eth, EthIf, EthTrcv, EthSwt。先介绍以下除 Eth 外的几个模块。

2025-03-01 12:34:16 951

原创 AUTOSAR SENT模块(1)——通信原理

SENT(single edge nibble transmission),单边半字节信号传输。在 AUTOSAR 规范中,SENT并没有明确的标准,因此将其归类为 CDD(复杂驱动)模块。SENT 是一种 MCU 和传感器之间直接连接的点对点通信方式,其结构简单,除了一根数据线之外,还由 5V供电和GND 三根线构成。由于 SENT 特殊的信号传输方式,使其传输信号的精度更高。总结来讲,SENT有以下优点:1. 采用数字信号传输,使得精度和传输速度更高;2. 结构简单,成本低。

2025-02-22 13:01:15 836

原创 VSCode离线安装插件

此时我们可以在下图位置中选择 “从VSIX安装” ,然后找到存放插件文件的路径就可以进行安装,不过大概率应该也是不能安装的(至少本人是这样的)。如下图所示,当我把鼠标放在框起来的版本号上时,vscode给了我如下提示,也就是说,我们将这个版本号改为我们所使用的vscode的版本号之后,插件才能正常使用。如果安装失败的话,基本上就是插件的版本号和所使用的vscode的版本号不一致所导致的。这里我们选择手动下载,会自动在浏览器中跳转到该插件的下载链接并自动下载插件,插件的后缀名为 .vsix。

2025-02-22 10:17:47 1142

原创 AUTOSAR ETH模块(1)——通信原理

以太网设备间的连接都是由 MCU 通过 MII 和 SMI 来外接 PHY 芯片,经由 PHY 芯片将信号转换为支持网线传出的形式之后,然后才能和其他设备进行通信。LLC:(Logical Link Control)逻辑链路控制层,主要负责以太网帧的收发,还可以对以太网帧进行错误控制、流控等。填充(PAD):在有效数据少于46字节的情况下,增加的填充字节,保证数据部分的最小长度,填充字节通常是 0x00。帧起始分隔符(SFD):1字节,用于标识帧的开始,用来指示接下来是帧的实际内容。

2025-02-15 23:18:05 1036

原创 EB生成配置代码

EB Tresos Studio,简称EB,通过图形化的模式进行配置生成,并根据选项配置生成配置代码,即 MCAL 层各个模块的配置参数。在 MCAL 代码中,分为静态代码和配置代码。静态代码,就是 AUTOSAR 规范内容,包含对硬件的封装以及标准化接口的封装;配置代码一般用于配置初始化结构体的内容,比如 控制器模式,波特率 等。EB生成配置代码需要三样东西:plugin,xdm,以及代码生成器。

2025-02-09 22:37:34 622

原创 AUTOSAR面试题集锦(1)基础知识

MCAL将底层硬件驱动抽象出来,对外设模块进行规范,基于Autosar规范进行驱动配置,提高了系统的可移植性、模块化和可重用性。硬件抽象:MCAL通过为硬件提供一个抽象层,使得上层的应用程序和操作系统无需直接与硬件交互,使得应用软件可以在不同的硬件平台之间更容易地迁移,无需对应用层进行大量修改。

2025-02-08 23:31:17 699

原创 基于ASRPRO的语音应答

我们需要把我们要替换的声音素材录制成wav格式,然后再天问的安装目录下有提供语音转换的程序,通过这个程序转换为mp3格式。因为我之后打算为这个语音助手添加更多的功能比如控制舵机、接入WiFi、屏幕显示等等,所以打算作为一个模块来和stm32进行连接,所以语音识别模块只完成了语音应答部分,并没有直接用它实现舵机开关的功能,但其他的像WiFi之类的这款芯片也是能实现的。这里面的播放语音id就是扩展下载来的,随机数可以在数学逻辑中找到,这里的作用是对检测到的id在选定范围内进行随机回复。

2024-09-28 23:06:13 998

原创 MQTT协议

在MQTT协议使用的过程中,服务器会保存一些重要的消息,此时cleanSession的值为flase,即保存数据,ture代表清除数据。同样的,该确认也是一个数据包,叫做CONNACK。MQTT是一种比http更简单的顶层协议,在MQTT组成的协议中,网络一般为中心分布型,所有设备节点既可能是发布者,也可能是订阅者,他们都会连在中心服务器上。发布者将需要发送的内容放在消息中发出,消息中蕴含的内容叫负载(Payload),负载一般也是字符串,发布者将消息发布后,订阅者只需要订阅该主题就能获取消息。

2024-05-23 14:14:19 528

原创 跟着野火从零开始手搓FreeRTOS(6)多优先级的配置

首先需要定义空闲任务的优先级,还要定义一个表示创建任务的最高优先级的静态变量uxTopReadyPriority,默认这个变量的值为0,即空闲任务的优先级。/* 空闲任务的优先级,task.h定义 *//* uxTopReadyPriority,定义task.c定义 */

2024-04-23 18:00:00 1167

原创 浅谈架构方法之时间片轮询

如果我们把TaskRemarks()放到SysTick的中断服务函数中,那么当这个中断执行的时候,滴答计时器的计数就会重置,同时TaskRemarks()函数也会重新执行,从而达到时间片轮询的效果。裸机系统能够处理一些相对简单的任务,但是功能单一,只会一直按顺序执行死循环里的任务,CPU只会全力做完一件事才会进行下一项任务,延时的时候也只会等待,浪费资源。操作系统的实时性和可靠性高还能同时执行多个任务,但是操作系统较为复杂,需要额外的学习成本,而且其对内存空间的要求需要我们注意内存的大小。

2024-04-22 17:06:03 1082 1

原创 c8t6+DHT11测量温湿度+串口显示

最小系统和温湿度传感器DHT11连接,并通过CH340模块在电脑串口助手上打印返回消息。

2024-04-18 18:00:00 873

原创 stm32报错问题集锦

而STM32F103VE的FLASH在128到256之间,所以最开始的启动文件是带hd的。上图显示的报错是ADC的中断相关部分出了问题,但实际上这个报错的原因是不同型号的芯片之间,他们的FLASH即闪存大小不同导致的。低容量:16KB 、32KB ,选择 startup_stm32f10x_ld.s 或 startup_stm32f10x_ld_vl.s。中容量 :64KB、128KB ,选择 startup_stm32f10x_md.s 或 startup_stm32f10x_md_vl.s。

2024-04-13 23:42:47 1544 1

原创 跟着野火从一开始手搓FreeRTOS(2)创建任务

任务就是无限执行的函数,在main.c中定义任务:让LED1以500ms的频率闪烁。/* 延时500个tick */LED1_OFF;/* 延时500个tick */这里的延时函数必须使用 FreeRTOS 提供的延时函数,不要使用我们裸机编程中的软件延时。vTaskDelay()会让当前任务被阻塞转而去执行其他任务;而裸机的延时会让CPU陷入死循环,一直在执行当前任务无法跳出,无法实现多任务系统。

2024-04-11 18:00:00 1173

原创 跟着野火从零开始手搓FreeRTOS(5)空闲任务与阻塞延时

栈和TCB的内存空间均在main.c中定义。任务栈是一个定义好的数组,大小由中定义的宏 控制,默认为 128, 单位为字(byte),即 512 个字节(bit)。/* 定义空闲任务的栈 *//* 在FreeRTOSConfig.h中定义 *//* 获取空闲任务的内存 *//* 在main.c中定义 *///定义空闲任务发任务控制块。

2024-04-09 18:00:00 812 1

原创 跟着野火从一开始手搓FreeRTOS(外)错误集锦

PS:本篇负责记录在移植过程中碰到的问题,会不定时更新。

2024-04-07 18:00:00 327

原创 跟着野火从零开始手搓FreeRTOS(4)临界段的概念及应用

在FreeRTOS中,系统调度也就是 PendSV 中断,所以对临界段的保护还是在于对中断的开和关的控制。带中断保护的开中断函数, 将上一次关中断时保存的 BASEPRI 的值作为形参 ,与 portSET_INTERRUPT_MASK_FROM_ISR()成对使用。不带中断保护的开中断函数, 直接将 BASEPRI 的值设置为 0,与portDISABLE_INTERRUPTS()成对使用。在 FreeRTOS 中,对临界段的保护出现在两种场合,一种是在中断场合一种是在非中断场合。下面是不带返回值的。

2024-04-05 20:45:00 1019 1

原创 跟着野火从零开始手搓FreeRTOS(3.2)就绪列表与调度器的实现

任务创建好之后,我们需要把任务添加到就绪列表里面, 表示任务已经就绪,系统随时可以调度。就绪列表在。

2024-04-03 18:00:00 1038 1

原创 跟着野火从零开始手搓FreeRTOS(3.1)任务的了解与创建

我们要实现两个变量按照一定的频率轮流的翻转,每个变量对应一个任务,所以需要定义两个任务栈。任务栈其实就是一个预先定义好的全局数据,我们可以直接在main.c中定义,也可以放在FreeROS.h中。我这里是放在了main.c中。任务栈(TaskxStack)数据类型为StackType_t,大小由 TASK1_STACK_SIZE 这个宏来定义,默认为 128,单位为字,即 512字节,这也是 FreeRTOS 推荐的最小的任务栈。

2024-04-01 18:00:00 1027 1

FreeRTOS源码v10.0.1

FreeRTOS源码v10.0.1

2025-03-08

AUTOSAR-SWS-EthernetDriver.pdf

AUTOSAR 4.4 官方以太网规范文档

2025-03-05

USART功能模板.zip

基于本例程STM32F103VET6实现以下功能: 1、通过串口1连接串口助手,定时在串口助手上打印信息; 2、借由 中断,通过串口助手输入的信息会在串口助手上显示出来 PS:本例程模板只为了移植方便,只包含串口相关功能

2024-06-24

基于stm32F1的气体监测.zip

本工程能监测温湿度、一氧化碳、汽车尾气以及PM2.5等数据,并将数据通过串口助手显示出来。 本工程基于C8T6最小系统板开发,代码亲测有效。

2024-06-15

空空如也

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

TA关注的人

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