如何开发智能小车的驱动器软件

本文介绍了如何开发智能小车的驱动器软件,涉及硬件接口、FreeRTOS的使用、任务管理、PID控制算法、OLED显示屏交互以及串口通信等内容,强调了嵌入式开发者在软件架构和硬件协同中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:如何开发智能小车的驱动器软件 - 古月居

驱动器软件总体架构

先来看整个机器人系统的整体架构,不难看出,其实驱动器软件的上下游是硬件外设和中间件软件,那想要开发驱动器软件就需要对上下游非常熟悉吗?不一定,但是作为一个嵌入式工程师需要懂得如何和对应开发者进行交流。

57e9f100b4834edc9ed8effecb8bf433.png

首先对于硬件开发者,他们会给我们提供一份原理图,以及一般性的我们需要知道芯片的使用手册,这样才能辅助我们去正确的使用硬件的各个IO,避免如最低级的正负级接反等问题;对于中间件软件,我们则需要和他们一起制定一个协议,这个协议约定了双方如何进行正确的数据交互。

说到这里,大家就很明确对于此处的嵌入式开发者而言需要做什么事情了。一方面要正确的使用板卡资源和外设资源,并对其数据进行加工处理来做一些开发者企图实现的功能。另一方面要将处理的数据与上游进行交互从而达到更高效的数据利用,当然了必要时也需要接收来自上游数据的指令。

首先对于硬件开发者,他们会给我们提供一份原理图,以及一般性的我们需要知道芯片的使用手册,这样才能辅助我们去正确的使用硬件的各个IO,避免如最低级的正负级接反等问题;对于中间件软件,我们则需要和他们一起制定一个协议,这个协议约定了双方如何进行正确的数据交互。

说到这里,大家就很明确对于此处的嵌入式开发者而言需要做什么事情了。一方面要正确的使用板卡资源和外设资源,并对其数据进行加工处理来做一些开发者企图实现的功能。另一方面要将处理的数据与上游进行交互从而达到更高效的数据利用,当然了必要时也需要接收来自上游数据的指令。

此处举一个例子来看

1f4ddeac08fe4a83bb7f2d18858d766a.png

FreeRTOS 快速上手

搭建软件环境

以Keil为例

33f06d3898384de7909035120d046110.png

https://www.keil.com/download/product

00b6fd893f3f44b0a1791de06b5813e6.png

c5fe7b27a2e84ca08691b67af3322400.png

Stm32配置keil5编译版本

FreeRTOS使用

RTOS全称为 Real Time Operation System,即实时操作系统。RTOS强调的是实时性,又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作,不允许超时;而软实时里对处理过程超时的要求则没有很严格。RTOS的核心就是任务调度。

FreeRTOS是RTOS的一种,尺寸非常小,可运行于微控制器上。微控制器是尺寸小,资源受限的处理器,它在单个芯片上包含了处理器本身、用于保存要执行的程序的只读存储器(ROM或Flash)、所执行程序需要的随机存取存储器(RAM),一般情况下程序直接从只读存储器执行。

https://j7h4nezmu0.feishu.cn/docx/PD6iduyKfo49Kux41vAcTURsnrJ#KZlsdtiUFoE3Khx0VfScpejknXA

任务创建

关于任务创建,FreeRTOS 提供了 API 给我们使用。格式如下

42aa872aadc4438eb8ee43b0601ce217.png

代码实例

//Task priority    //任务优先级
#define START_TASK_PRIO        1

//Task stack size //任务堆栈大小        
#define START_STK_SIZE         256  

//Task handle     //任务句柄
TaskHandle_t StartTask_Handler;

//Task function   //任务函数
void start_task(void *pvParameters);

//Main function //主函数
int main(void)
{ 
  systemInit(); //Hardware initialization //硬件初始化
        
        //Create the start task //创建开始任务
   xTaskCreate((TaskFunction_t )start_task,             //Ta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值