STM32项目(二) —— 车灯测试台架

STM32 —— 车灯测试台架


宗旨:技术的学习是有限的,分享的精神是无限的。


需求:

(1)、点灯控制器:在线节拍,离线节拍;

(2)、PWM控制盒:在线PWM,离线PWM;

(3)、电流测试模块:检测车灯电流校准系数;


方案:

点灯控制器:STM32 + CAN + GPIO

节拍:比如亮多长时间,灭多长时间;大节拍中嵌套多个小节拍,每个灯对应相同或者不同的节拍。

上位机下发控制指令,表明此时是在线还是离线。(离线跑的节拍是在在线模式下下载的)

在线模式:如果是直接输出,按照指定格式下发CAN消息,MCU接受消息并解析,切继电器点灯;如果是存储节拍,MCU内部Flash存储上位机通过CAN下发的点灯节拍。

离线模式:从内部Flash中读取节拍,并控制继电器点灯;

模式切换按钮:不仅可以通过上位机控制在线/离线模式,还可以通过按键控制在线/离线模式。

系统设计:RTX多任务设计,CAN的接收、发送任务和超时任务,在线模式任务,离线模式任务,按键检测任务。

(1)、按键检测:判断IO口电平,添加到队列中,任务中不断读取队列和按键检测函数;

(2)、CAN接收/发送/超时:CAN接收中断中接收消息加到队列中,任务中出队列处理,在线模式——不保存数据,保存数据;离线模式;周期帧发送状态及接收的应答。

(3)、在线模式:CAN接收线程中判断是在线模式,如果不保存数据,在此处理在线线程逻辑去点灯,如果保存数据,写文件系统;

(4)、离线模式:判断上位机切换到离线模式/按键切换到离线模式,此时读取Flash内容,控制继电器点灯;


PWM控制器:STM32+CAN+GPIO

上位机下发控制指令,表明此时是在线还是离线。(离线跑的节拍是在在线模式下下载的)—— 这里的节拍就包括PWN频率和占空比

在线模式:如果是直接输出,上位机按照指定格式下发CAN消息,MCU接受消息并解析,通过PWM模块输出PWM方波(输入和输出可配置);如果是存储节拍,MCU内部Flash存储上位机通过CAN下发的点灯节拍。

离线模式:从内部Flash中读取节拍,并控制继电器点灯;

模式切换按钮:不仅可以通过上位机控制在线/离线模式,还可以通过按键控制在线/离线模式。

系统设计:RTX多任务设计,CAN的接收、发送任务和超时任务,在线模式任务,离线模式任务,按键检测任务。

(1)、按键检测:判断IO口电平,添加到队列中,任务中不断读取队列和按键检测函数;(模式切换按钮)

(2)、CAN接收/发送/超时:CAN接收中断中接收消息加到队列中,任务中出队列处理,在线模式——不保存数据,保存数据;离线模式;周期帧发送状态及接收的应答。

(3)、在线模式:CAN接收线程中判断是在线模式,如果不保存数据,在此处理在线线程逻辑去输出PWM方波,如果保存数据,写文件系统;

(4)、离线模式:判断上位机切换到离线模式/按键切换到离线模式,此时读取Flash内容,输出PWM方波;

(外部PWM输入通过继电器切换, 默认是外部PWM输入,检测到在线/离线模式,切继电器变成MCU输出PWM(小的PWM模块驱动))。


电流测试模块:使用电流检测芯片,两端接采样电阻,如0.06Ω,通过标定,得到每个通道的标定系数。





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC 使用介绍(二)—— DispatcherServlet

一、Hello World示例 1、引入依赖 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope> </dependency> <dependency&g…

单片机如何检测市电通断?(应用甚广~)

我们在topemic网站上分享过一篇题为"单片机检测220V交流电通断电路"的文章&#xff0c;目前有近万次阅读&#xff0c;在这里做个总结分享给没有读过该文的公众号朋友。废话不多说&#xff0c;直接上图&#xff1a;该电路工作原理如下&#xff1a;当220V断开时&#x…

STM32项目(三)——通用LIN控制器

STM32——通用LIN控制器 宗旨&#xff1a;技术的分享是有限的&#xff0c;分享的精神是无限的。 需求&#xff1a; LIN马达控制器&#xff1a;AFS&#xff08;DHLAFL&#xff09;——弯道辅助照明系统 DHL&#xff1a;上极限&#xff0c;下极限&#xff0c;零位&#xff0c;马…

精妙的SQL语句收藏

说明&#xff1a;复制表(只复制结构,源表名&#xff1a;a 新表名&#xff1a;b)select * into b from a where 1<>1说明&#xff1a;拷贝表(拷贝数据,源表名&#xff1a;a 目标表名&#xff1a;b)insert into b(a, b, c) select d,e,f from b;说明&#xff1a;日程安排提…

hihoCoder #1758 加减

$\DeclareMathOperator{\lowbit}{lowbit}$ 题目大意 对于一个数 $x$&#xff0c;设它最低位的 1 是第 $i$ 位&#xff0c;则 $\lowbit(x)2i$ 。 例如 $\lowbit(5)1$&#xff0c;$\lowbit(12)4$ 。 定义对 $x$的一次变换为&#xff1a;有 50% 的概率变成 $x\lowbit(x)$&#xff…

十年经验工程师为何被裁?

事件去年年底&#xff0c;公司来了一位工作十余年的工程师&#xff0c;据说软件硬件都会&#xff0c;应聘的岗位是XX算法工程师。比较巧的是&#xff0c;这位工程师是我上一家公司隔壁部门的同事。我们均来自大厂&#xff0c;但是是国企&#xff0c;二线城市。所以尽管他在前公…

飞康CEO:敢于向传统的灾备法则说“不”

近日&#xff0c;借美国飞康软件公司创办人兼首席执行官胡艾瑞徵先生访华期间&#xff0c;比特网记者对其进行了独家专访。 飞康软件公司成立于2000年&#xff0c;在过去的9年中&#xff0c; IPStor已经发展成为飞康包括整合重复数据删除功能的虚拟磁带库(VTL)、持续数据保护(C…

STM32项目(四)——暗室网关

STM32项目&#xff08;四&#xff09;——暗室网关 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 需求&#xff1a; 采集环境箱温度&#xff0c;采集20个通道的电流值&#xff0c;点灯节拍控制&#xff1b;&#xff08;上位机服务器端复杂&#xff09…

做10多年测试的老何

题图&#xff1a;老何是我的同事&#xff0c;他也喜欢篮球&#xff0c;因为篮球&#xff0c;我们两的话题比较多。老何做了十几年的测试工作。我们比较有猿粪的是&#xff0c;12年我在TCL&#xff0c;当时他也在TCL工业研究院&#xff0c;我们两的办公室也就相邻两栋楼。不过那…

[紧急问题和解决方案] 无法打开被权限管理服务(RMS)加密的Office 2003文档

在2009年12月11号以后&#xff0c;我们发现了关于“无法打开被‘权限管理服务’&#xff08;RMS&#xff09;加密的Office 2003文档”的紧急问题。为了避免对您的业务任何可能的影响&#xff0c;特提前向您介绍症状和解决方案如下&#xff1a;<?xml:namespace prefix o ns…

STM32项目(五)——智能回收箱

智能回收箱 智能回收箱功能&#xff1a; 智能废旧回收箱定位&#xff08;GPRS/GPS&#xff09;。 回收箱异常开门报警、重量超限报警、容量超限报警&#xff0c;电量低下报警等&#xff08;信息/邮件&#xff09;。 废旧物品投递时先刷卡&#xff0c;显示卡号等信息确认无误后可…

推荐一个C++大佬

这里向大家推荐一个优质C公众号&#xff0c;号主程序喵&#xff0c;硕士毕业&#xff0c;浸淫C多年&#xff0c;帮助过不少C新手入门和进阶&#xff0c;可以说一句“精通C”啦。他搞过人脸识别&#xff0c;研究过自动驾驶&#xff0c;人生就是不断的挑战自我&#xff0c;现在从…

浮点数保留n位小数

p 1.234 p round(p,2) print(p) # 1.23 #round(你要操作的数,保留几位)转载于:https://www.cnblogs.com/liangying666/p/9161711.html

Silverlight HLSL实现背景滚动

一个Silverlight HLSL的简单例子&#xff0c;通过HLSL实现图片上的像素点的的水平移动&#xff0c;从而实现一个滚动背景的效果。 首先把Shader写出来吧。我这里借助了Shazzam &#xff0c;界面如下&#xff1a; 下面是我的HLSL&#xff1a; sampler2D input : register(s0);//…

极简的 PNG 编码函数 svpng(),用来学习C语言,真的很爽

这个是在知乎上看到的大神写的文章&#xff0c;如果是学习C语言入门的&#xff0c;我觉得可以从这个入手&#xff0c;特别是对图像感兴趣的。文章中提到的「我」&#xff0c;指的是「Milo Yip」大神。1. 什么是png格式图片&#xff1f;相对地&#xff0c;PNG&#xff08;Por…

STM32项目(六)—— 中文电子捡货标签

STM32项目&#xff08;六&#xff09;—— 中文电子捡货标签 宗旨&#xff1a;技术的分享是有限的&#xff0c;分享的精神是无限的。 传统物流行业仓储拣货采用纸单作业&#xff0c;拣货完成后再进行验货、出货&#xff0c;容易造成拣货错误、拣货速度与效率低、新员工培训时间…

如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?

RT-Thread Smart 系列连载序号内容1《当“树莓派”遇上RT-Thread Smart——应用编程入门》2《RT-Thread Smart和树莓派&#xff1a;wget & cURL网络客户端》3《如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart&#xff1f;》4sdl图形类应用5dropbear及ssh server…

bzoj3195 [Jxoi2012]奇怪的道路——状压DP

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id3195 看到数据范围就应该想到状压呢... 题解(原来是这样)&#xff1a;https://www.cnblogs.com/LadyLex/p/7252789.html 代码如下&#xff1a; #include<iostream> #include<cstdio> #include&l…

Google Maps API 进级: GoogleMaps常用事件及应用思路1

转自&#xff1a;http://hi.baidu.com/xfm_zhr/blog/item/8c1790517e87ea888d54302a.html1. GoogleMaps常用事件及应用思路 地图再被鼠标拖动时&#xff0c;GMap2对象会激发dragstart,drag,dragend等事件。 示例&#xff1a;动态显示地图的中心位置。 //更新信息&#xf…

STM32项目(七) —— 智能仓库管理系统

智能仓库管理系统 随着经济的发展&#xff0c;对企业的生产经营要求提高&#xff0c;企业必须综合利用各种先进技术&#xff0c;在网络与信息技术的支持下&#xff0c;改进现在的生产经营模式和组织结构&#xff0c;增加利润。随着企业规模的扩大。高效方便的仓库管理系统&…