![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
wanglong3713
嵌入式软件
展开
-
字节按位前后反转C语言程序
一个字节可表示的数据只有256种,如果将0x00~0xFF按位反转的值做成表格,使用查表法,则效率更高了。uint16_t i;for (i = 0;i < 0x0100;i++)原创 2024-04-05 11:19:35 · 703 阅读 · 0 评论 -
BCD码与十进制数转换C语言程序
BCD码(Binary-Coded Decimal),也称为二-十进制代码,是一种将十进制数转换为二进制数的编码方式,用4位二进制数来表示1位十进制数中的0~9这10个数码。BCD码使用四个位Bit来储存一个十进制的数码,使二进制和十进制之间的转换转换变得非常快捷和简单。原创 2023-12-26 20:27:20 · 1161 阅读 · 0 评论 -
C语言求数组中出现次数最多的元素
1、程序不考虑时间和空间复杂度,并不一定是最优的算法,只是流程简单,易于理解;2、该方法利用了数组的下标当作与元素对应的值,因此只适用于数组元素为非负整数的情况;3、输入数组的长度任意,新建的数组为变长数组,所以要用C99的标准;4、新建的数组下标当作元素的值,实际相当于给输入数组进行了排序,所以找到第1个最大值,跳出循环,如果有出现次数相同的元素,则返回较小元素;原创 2023-11-13 19:58:55 · 3118 阅读 · 1 评论 -
STM32F103单片机内部RTC实时时钟驱动程序
STM32F103系列的RTC模块,没有年月日及时间寄存器,只有一个32位计数器,每1秒加1,没有年月日及时间寄存器,需要软件配合,才能实现日历、时钟功能;由于只有计数功能,可以任意时间作为基准时间(即开始时间),用UTC时间戳(以1970年1月1日00:00:00为开始时间),可以使程序通用性更强;以上UTCToUnix和UnixToUTC两个函数是以标准UTC时间为基础的,实际北京时间为UTC+8,相差8个小时,如果需要计算北京时间,需要加8个小时;水平有限,以上如有疏漏之处,欢迎指正。原创 2023-10-24 20:38:20 · 2858 阅读 · 0 评论 -
PID算法C语言程序STM32单片机控制水温实验(二、积分项改进)
该水温控制系统,传统PID与改进PID效果差不多,可能是因为该系统过于简单;另外P、I、D参数选取未经过大量实验,可能不是最优的,本例中的积分I参数非常小,所以积分项的改进效果不明显,但目的在于总结积分项的改进方法与C语言实现。有兴趣的可以试验整定参数,达到更好的效果。如有错漏之处,欢迎指正。原创 2022-10-24 20:19:00 · 3687 阅读 · 4 评论 -
PID算法C语言程序STM32单片机控制水温实验(一、位置型PID)
一、概述实验所用器材均为容易买到的设备,主要有STM32F103C8T6最小系统板、DS18B20温度传感器、继电器模块、TM1638显示模块、电加热棒(12V/80W)、直流电源适配器(12V/10A),再找一个小一些的玻璃杯(水250ml),所有设备如下图。二、系统功能由于采用普通继电器控制加热棒,继电器不允许频繁启停,因此将控制周期设为1min,即每1min计算一次当前1min内电加热棒需要开启的时间(占周期的百分比),通过控制每一个控制周期内电加热棒的开启时间,使水温在设定温度附近恒定;因温原创 2022-03-31 23:09:44 · 15147 阅读 · 11 评论 -
STM32单片机C语言程序使用KNN算法对乳腺肿瘤分类
一、概述之前在《STM32单片机使用KNN算法实现鸢尾花分类》中使用了KNN算法对鸢尾花进行分类,程序采用C语言编写,运行于STM32F103单片机上,效果较好。本篇文章将采用KNN算法对乳腺肿瘤进行分类,看看单片机处理高维数据的表现。数据来自于UCI,下载地址https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29,整理好的数据已上传到资源breast_cancer_wisconsin(diagnos原创 2022-01-12 20:36:05 · 968 阅读 · 0 评论 -
常用距离计算单片机C语言程序
一、欧几里得距离(Euclidean Distance)1.定义欧氏距离,即空间中两点的直线距离,设空间中X的坐标为Y的坐标为X与Y之间的欧式距离为2.C语言程序/******************************************************************************* * 函数名:EuclideanDistance * 功 能:计算空间中两个点的欧几里得距离 * 参 数:*u16DataA点A的坐标,数组 *u16Da原创 2022-01-12 20:33:16 · 1163 阅读 · 0 评论 -
STM32单片机使用KNN算法实现鸢尾花分类
一、概述最近在利用业余时间学习机器学习算法,由于笔者是嵌入式软件工程师,想将机器学习算法在单片机端实现,KNN算法(k-Nearest Neighbor,K最近邻算法)是为数不多的可在单片机端实现的机器学习算法。通过检索发现,在单片机端实现KNN算法的例子较少,仅有几个用单片机实现手写数字识别的。本例程硬件使用的是STM32F103C8T6最小系统板,IAR开发环境,STM32CubeMX进行配置并生成工程文件,鸢尾花数据集是从UCI机器学习官网https://archive.ics.uci.edu/原创 2021-10-24 01:41:40 · 4965 阅读 · 6 评论