![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序算法
代码实例为主
匠在江湖
这个作者很懒,什么都没留下…
展开
-
单片机(嵌入式)程序分层架构
前言疫情带来的灾难,使得世界处于不稳定状态,全球缺芯片成为常态。对从事单片机和嵌入式底层的开发人员来增加很多的工作量,若是不注重代码分层或者分层不好的将是多么痛苦,老项目换芯片换个不停,新项目做好几套芯片方案。若有良好的分层思想,将是减少很多工作量!最初的单片机开发语言是汇编语言,但汇编语言会随着单片机种类的不同而不同。程序设计起来难度较大。后来人们改用C语言作为单片机程序设计的通用语言。这种不依赖于机器硬件的语言,可以方便的在各类单片机系统中移植,极大的加快了单片机......原创 2022-04-26 22:49:48 · 15162 阅读 · 1 评论 -
环形队列串口通信
/** @copyright Copyright(c)2014-2011 XXXX Co.,Ltd. All rights reserved. ****************************************************************************** * @file uart.h * @brief * @details * @author 匠在江湖(ID:1234) * @version .原创 2022-01-22 15:08:33 · 713 阅读 · 0 评论 -
环形队列 代码
/** @copyright Copyright(c)2014-2011 XXXX Co.,Ltd. All rights reserved. ****************************************************************************** * @file queue.h * @brief * @details * @author 匠在江湖(ID:1234) * @version .原创 2022-01-22 15:05:03 · 350 阅读 · 0 评论 -
卡尔曼滤波算法 C语言实现
/** ****************************************************************************** * @brief 卡尔曼滤波器 函数 * @param inData - 输入值 * @return 滤波后的值 * @note r值固定,q值越大,代表越信任测量值,q值无穷大,代表只用测量值。 * q值越小,代表越信任模型预测值,q值为0,代表只用模型预测值。 * ...原创 2021-12-08 19:52:54 · 3729 阅读 · 0 评论 -
GimbalLock万向节锁、 欧拉角坐标旋转、 四元数旋转
也许你都知道四元数这么个东西,也许你还知道万向锁。但是对于弄懂它们还是不那么容易的——起码对于我就是如此了。今天是丢三落四日,我就自己来捡捡吧。——ZwqXin.com事先声明,原理神马的,其实我也不是很懂,本文仅作抛砖引玉之用。想无误认识万向锁和四元数的朋友们请绕道回来。本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明原文地址:http://www.zwqxin.com/archives/arithmetic/gimballock-and-quaternion转载 2020-07-08 09:35:14 · 509 阅读 · 0 评论 -
欧拉角坐标旋转 万向节死锁(Gimbal Lock)视频
万向节死锁(Gimbal Lock)视频原创 2020-07-07 23:10:52 · 362 阅读 · 0 评论 -
字符串 中查找 逗号 位置 源码 函数
#include <stdio.h>/**@brief 查找逗号位置偏移量 函数@param [in] *str 字符串指针@param [in] cx 从*str里面得到第cx个逗号所在的位置@return 0~0XFE,代表逗号所在位置的偏移; 0XFF,代表不存在第cx个逗号@note*/unsigned char CommaPosOffset(char *str, unsigned char cx){char *p = str;while(原创 2020-07-02 18:36:02 · 1002 阅读 · 0 评论 -
16进制形式的字符串 转 16进制格式整数 源码 函数
/*例如:“7F” 转成 整数0x7F*/#include <stdio.h>void AsciiToHex(char *str, unsigned char size, unsigned char *result){unsigned char temp;for(*result = 0; size; size--, str++){ if(('9' >= *str) && (*str >='0') ) temp = *str - '0'; else原创 2020-07-02 14:24:09 · 211 阅读 · 0 评论 -
冒泡升降排序通用 函数
直接上源码:运行结果:原创 2020-07-05 17:56:51 · 256 阅读 · 0 评论 -
字符串 转 数字 源码 函数 2
`#include <stdio.h>/**@brief 字符串转数字 函数@param [in] *str 字符串指针@return 转换数值@note/double StringToNumber(char str){char* p = str;char maskNegative = 0; //负数标记char mulIntegral = 10; //整数倍数double mulDecimal = 1; //小数倍数double result = 0原创 2020-07-02 18:49:30 · 222 阅读 · 0 评论 -
没有中间变量的数据交换的方(代码示例验证)
异或 交换数据:a = a^b; b = a^b; a = a^b;#include <stdio.h> /** ******************************************************************************* * @brief 主 函数 * @param [in] None * @return None * @note ************************************原创 2020-07-05 18:29:40 · 146 阅读 · 0 评论 -
没用中间变量交换的 冒泡排序 升降排序通用 源码 函数
注意:没用中间变量交换数据 的 异或交换法 不适用浮点数#include <stdio.h>/** ******************************************************************************* * @brief 冒泡排序 函数 * @param [in] *ary 数据指针 * @param [in] len 数据长度 * @return None * @note 降序排列 *******原创 2020-07-05 18:10:22 · 172 阅读 · 0 评论 -
限幅中位值平均滤波算法 源码 函数
#include <stdio.h>//数据类型同样别名typedef float f32;typedef double f64;typedef signed char s8;typedef signed short s16;typedef signed int s32;typedef signed原创 2020-07-05 16:39:38 · 503 阅读 · 0 评论 -
字符串 转 数字 源码 函数 1
#include <stdio.h>/**@brief 字符串转数字 函数@param [in] *str 字符串指针@param [in] len 从*str里面要转换的字符个数@return 转换数值@note/double StringToNumber(char str, char len){char* p = str;char maskNegative = 0; //负数标记char mulIntegral = 10; //整数倍数dou原创 2020-07-02 18:41:54 · 187 阅读 · 0 评论