【ucos】基于UCOSIII的电机闭环控制

本文介绍了基于UCOSIII的电机闭环控制项目,包括上位机通过串口发送指令、实时电机转速控制、PWM输出、转速测量及PID控制。任务设计中,使用数据表协调不同任务对数据的操作,确保系统高效运行。

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

前言

由于项目需求,需要对电机进行闭环控制。采用UCOSIII作为开发平台,效率的确是要高很多呀。具体是需求如下:
上位机:通过串口向单片机发送电机转速控制指令、实时显示转速曲线;
单片机:实时发送电机转速数据帧、实时输出pwm信号、实时检测电机转速、pid控制

任务设计

AppTaskCreate_DT_Board_LED(&err);						//板载led任务
AppTaskCreate_DT_Ground_Station(&err);				//上位机指令接收任务
AppTaskCreate_DT_Ground_Station_TICK(&err);		//定时下传参数任务
AppTaskCreate_DT_PWM_Output(&err);					//电机pwm输出任务
AppTaskCreate_DT_PWM_Capture(&err);					//电机转速测量任务

要点整理

整体机制

采用ucos进行开发的效率肉眼可见,不用在纠结于前后台中纷繁复杂的逻辑。整个测试程序的结构很简单,在程序的后台有一个与上位机相同的数据结构体,有种数据库的感觉,所有的数据收发、输入输出都是围绕着这个数据表实现的。这样可以每个任务对数据表负责。

任务简介

led

只是一个简单的心跳灯,优先级55

上位机指令接收任务

这里首先是对串口的底层进行配置,在中断中采用状态机的方式对指令进行解包,当确认接收到正确数据后激活接受任务,接受任务根据解包到的数据信息将数据写入数据表的相应位置;优先级30

定时下传参数任务

和led类似,通过串口周期性的提取数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值