打印
[经验分享]

单片机开发中,常用14种算法

[复制链接]
845|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sanfuzi|  楼主 | 2024-9-18 19:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
单片机开发中常用的算法种类。
1.基础数**算算法
比如加减乘除、求和、求平均、求最大/最小值等简单的数**算,这些是算法中的基础,经常用于数据处理和计算。
2.排序算法
如冒泡排序、选择排序、插入排序等,用途是将数据按照升序或降序进行排列。
3.滤波算法
如均值滤波、中位值滤波、卡尔曼滤波等,一般用于ADC采集信号的二次处理,用软件算法过滤信号上的噪声,还原接近真实的数据。
4.查找算法
包括线性查找和二分查找等,用于在数据集合中快速定位特定元素。

5.字符串处理算法
涉及字符串的比较、复制、连接、查找、替换等操作,这些算法在单片机上面也会用到,比如屏显示,json、物联网模块的指令数据处理。
6.控制算法
如PID算法,PID控制算法在工业控制系统用的很多,主要作用是让如温度、速度、位置等,能够快速且准确地达到并维持在期望的目标值。
PID算法就像是有一个智能的调节器,它能够根据系统的当前状态和目标状态之间的差异,来自动调整控制量,从而使系统稳定地工作在期望的状态。
例如,在恒温系统中,PID控制器会根据当前温度与设定温度之间的差异来调节加热器的功率,以保持恒温。
在机器人导航中,PID控制器可以调整机器人的行驶方向和速度,以确保它沿着预定的路径行驶。

7.数据处理算法
包括数据采集、转换、编码、解码等操作,我们无际单片机项目中的无线软解码、OTA固件升级就涉及此类算法,这些算法在数据通信和存储中用的比较多。
8.加密解密算法
如AES、DES等,用于保证数据的安全性,防止未授权的访问和篡改,这些市面上一般有现成的可用。

9.数据校验算法
比如CRC、总和校验、异或校验,在串口通信的应用比较多。
10.数学函数算法如三角函数、对数、指数、开方等算法,这些在处理复杂数学问题时非常有用,不过我接触的应用中,比较少。
11.图形处理算法
在需要显示或处理图像的单片机应用中,可能会用到点阵显示、图形变换、颜色处理等算法,在一些点阵屏,TFT屏的应用比较多,这个一般根据实际的图形或者屏尺寸制定算法。
12.状态机算法这个属于程序架构的一部分了,用于功能复杂项目中的状态转换和事件处理,比如TI蓝牙协议栈的OSAL系统。
13.搜索算法如深度优先搜索(DFS)、广度优先搜索(BFS)等,用于在图或树结构中搜索特定的节点或路径,这个用链表来做队列时会用到。
14.优化算法
如遗传算法、模拟退火算法等,用于寻找问题的最优解或近似最优解,像遗传算法一般用来做机器人的路径规划,以找到最优的移动路径,避开障碍物,做过智障小车的小伙伴,应该比较熟悉了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

3044

帖子

1

粉丝