嵌入式软件
文章平均质量分 73
嵌入式开发
Ch_champion
爱上挨踢,成为一名(软/硬件)合格的攻城狮
联系方式:加这个QQ号:191502656
展开
-
STM32HAL-最简单的时间片论法
一款占用资源最小的时间片论法框架原创 2024-06-14 23:26:04 · 343 阅读 · 0 评论 -
TFT LCD 帧率计算方法与简述
TFT LCD 帧率、刷新率计算方法原创 2024-06-12 22:21:00 · 310 阅读 · 0 评论 -
STM32HAL-最简单的长、短、多击按键框架
一款占用资源最小的按键框架原创 2024-06-02 22:46:42 · 627 阅读 · 0 评论 -
一个基于单片机内存管理-开源模块
一个基于单片机内存管理-开源模块原创 2024-04-14 20:43:31 · 1096 阅读 · 0 评论 -
写国际化的嵌入式代码,时间问题如何处理?
国际化的嵌入式代码,时间问题如何处理转载 2024-04-12 16:07:17 · 56 阅读 · 0 评论 -
一个开源嵌入式USB设备协议栈:FelisUSB
一个开源嵌入式USB设备协议栈:FelisUSB原创 2024-04-12 14:37:37 · 644 阅读 · 0 评论 -
一个开源跨平台嵌入式USB设备协议:TinyUSB
一个用于嵌入式系统的开源跨平台 USB 主机/设备堆栈 TinyUSB原创 2024-04-12 14:27:09 · 1683 阅读 · 0 评论 -
一款专门为嵌入式无线通信模块-开源框架
一款专门为嵌入式无线通信模块-开源框架原创 2024-04-11 09:33:47 · 310 阅读 · 0 评论 -
一种无OS的MCU实用软件开源框架
一个无OS的MCU实用软件开源框架原创 2024-04-11 09:27:16 · 1449 阅读 · 2 评论 -
一个开源的AT命令解析模块
一个开源的AT命令解析模块原创 2024-04-11 08:58:55 · 1045 阅读 · 0 评论 -
RGB565颜色转换
字符、图片转换颜色原创 2024-03-28 10:28:37 · 273 阅读 · 0 评论 -
keil编译提示Note: source file ‘..\xx\cxx\xx.c‘ -object file renamed from “xx.o“ to “xx_1.o“
keil编译提示原创 2024-01-27 16:10:07 · 1056 阅读 · 0 评论 -
KEIL MDK 工程(.uvprojx)目录更改后快速修改方法
MDK 工程(.uvprojx)目录更改后快速修改原创 2024-01-15 18:03:29 · 1573 阅读 · 0 评论 -
高质量代码是怎么写出来的?串口环形队列
高质量代码是怎么写出来的?串口环形队列转载 2024-01-12 15:33:08 · 150 阅读 · 0 评论 -
使用Notepad++编辑器,安装AnalysePlugin搜索插件
使用Notepad++编辑器,安装AnalysePlugin搜索插件原创 2023-12-04 18:54:18 · 1289 阅读 · 0 评论 -
STM32HAL-完全解耦面向对象思维的架构-时间轮片法使用(timeslice)
完全解耦面向对象思维的架构-时间轮片法原创 2023-11-03 00:21:46 · 1770 阅读 · 0 评论 -
嵌入式相关开源项目、库、资料-汇总 | 干货
精品嵌入式资源汇总原创 2023-10-19 19:41:50 · 1134 阅读 · 1 评论 -
嵌入式软件国际化(多语言) 点阵字库选择分析
嵌入式软件国际化(多语言) 点阵字库选择分析原创 2023-09-16 19:06:22 · 377 阅读 · 0 评论 -
通过Keil如何查看MCU的RAM与ROM使用情况
通过Keil如何查看MCU的RAM与ROM使用情况原创 2022-07-03 00:47:33 · 9008 阅读 · 0 评论 -
利用三轴加速度求解位移的算法—来自飞思卡尔方案
加速度传感器实现位移功能转载 2022-06-01 19:01:43 · 4183 阅读 · 1 评论 -
BCC校验(异或校验-C语言-示例)
概述 BCC(Block Check Character//信息组校验码),因校验码是将所有的数据异或得出结果,故称为异或校验。具体算法(将每一个字节的数据,一般是两个16进制的字符,进行异或后即得到校验码)如下:例如16进制数据:FF 0A 0B 0C计算:FF xor 0Axor 0Bxor 0C = F2校验码是:F2一、代码:uint8_t BccCrc(uint8_t *data, uint16_t length){ uint8_t i; ...原创 2022-04-17 21:29:06 · 9699 阅读 · 0 评论 -
SEGGER_RTT_printf()函数实现打印浮点、负数-示例
概述最近公司项目换另一款gsensor,用到了浮点数打印。又不想使用串口来打印数据,在此做个笔录,通过修改源码方式实现。一、修改源码1、在 SEGGER_RTT_printf.c 中 的 int SEGGER_RTT_vprintf(unsigned BufferIndex, const char * sFormat, va_list * pParamList)函数,增加以下case 'f':case 'F': 语句/********************************..原创 2022-03-11 19:28:27 · 2447 阅读 · 0 评论 -
Unicode 编码表下载
概述 很多项目都使用了Unicode 编码表,在此,做个笔录。官网第一入口:https://home.unicode.org/第二入口:Unicode 14.0 Character Code Charts第三入口:http://www.unicode.org/charts/About.html第四入口:https://www.unicode.org/versions/components-14.0.0.html总结,这就是完整版的Unicod...原创 2021-12-25 19:01:45 · 3819 阅读 · 0 评论 -
单片机模块化编程
概述 简单的C语言示例:#include <stdio.h>enum { LED1, LED2, LED3, LED_NUM};void Func_LED1(unsigned char state);void Func_LED2(unsigned char state);void Func_LED3(unsigned char state);/** * 函数指针数组定义格式 * 函数返回类型 (*指针变量名[数组大小]...原创 2021-11-29 23:55:14 · 2481 阅读 · 0 评论 -
基于MCU,如何零代码无开发实现OTA差分升级?
概述 随着物联网设备智能化的发展,OTA 升级已经成为了业界公认的基础能力,而 OTA 在设计和实现过程中需要依赖于物联网设备的硬件方案。物联网设备主流的硬件方案为:1. 直接基于通讯芯片 / 模块开发的方案,用户升级的主要目标是通讯芯片 / 模块。艾拉比在设备端有基于 UA+UC 的方式提供端云一体化的 OTA 解决方案。2. 通过MCU/DSP/MPU 等应用处理器 / 控制器和各类通讯模块开发的方案,用户升级的主要目标是这些应用处理器 / 控制器,通讯模块更多是透传...转载 2021-11-28 11:15:46 · 3103 阅读 · 0 评论 -
一文讲解单片机、 ARM、 MCU、 DSP、 FPGA、 嵌入式错综复杂的关系
概述一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。MCU俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结转载 2021-11-07 11:44:25 · 3925 阅读 · 0 评论 -
怎样入门嵌入式嵌入式未来的发展方向
概述 很多工程师要往嵌入式方向发展,特别是ARM得到应用后,这个趋势更是有增无减,但你真的知道怎样入门嵌入式么?你知道嵌入式未来的发展方向么?怎样入门嵌入式嵌入式未来的发展方向在很多学生或者初级工程师都关注嵌入式,尤其在ARM大红大紫以后,这个趋势更是有增无减,但你真的知道怎样入门嵌入式么? 你知道嵌入式未来的发展方向么?我先谈一下自己的背景吧,我做了5年软件工程师,3年项目经理,全部是嵌入式领域,包括消费电子和车机产品。 感觉嵌入式软件底层的发展一直停留在07年的水平,即使是现在,..转载 2021-11-07 11:24:06 · 2531 阅读 · 0 评论 -
怎样混好嵌入式 MCU、ARM、DSP这一行?
概述很多初学者,甚至是混了好几年的老手,都在抱怨,电子这行怎么竞争这么大啊? 颓废,这完全在抹杀自己的激情,没了激情,搞电子,完全就是在浪费生命。其实,竞争真的大吗??对比一下,难道做业务的竞争不大,做管理的竞争不大,现在这个社会,哪个领域,哪个行业,竞争都大。所以,假如你想逃避竞争,那你就不用活了,当然,你本身家庭很好,父辈好有钱的话,那另当别论!所以, 不管什么行业,竞争大不大的问题,都不用问了。答案都是:竞争大,但是必须面对,我们要自己面对的竞争越小,那么你的技术能力应该是越...转载 2021-11-07 11:06:53 · 2513 阅读 · 0 评论 -
GCC编译过程与动态链接库和静态链接库
1. 库的介绍库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 windows上对应的是.lib .dll linux上对应的是.a .so在这里先介绍下Linux下的gcc编译的几个选项g++ -c hellospeak.cpp会将hellospeak.cpp转载 2021-10-19 15:12:37 · 3004 阅读 · 0 评论 -
使用Notepad++编辑器查看二进制bin文件
概述 是一款非常有特色的编辑器,Notepad++是开源软件,Notepad++中文版可以免费使用。操作步骤:1、在工具栏->“插件”选项。2、勾选HEX-Editor选项,点击右上角“安装”即可。3、确认安装插件4、下载插件5、插件已安装6、打开bin文件,乱码7、使用Hex-Editor格式显示,点击红色圈圈的H选项。8、如果不想要,也可以移除。9、总结 好了,就介绍此为止。...原创 2021-07-11 17:44:32 · 21947 阅读 · 5 评论 -
单片机操作寄存器应用,8、16、32数按位翻转
概述 单片机应用种,操作各种芯片,都要操作对应的寄存器,一些芯片时常出现,低位在前高位在后,有时通过逻辑分析仪抓到波形又是反向,在编写程序时,每次需要都要换算,觉得非常麻烦在这,做个笔录,参考别人的算法,方便后期查阅,同时也给遇到此问题的同仁们,参考。#include <stdio.h>#include <stdint.h>#include <mm_malloc.h>//uint32_t数按位翻转uint32_t Reverse32Bit...原创 2021-03-24 11:50:47 · 5733 阅读 · 0 评论 -
单片机程序的整体框架设计的一些思路体会
单片机系统开发人员的目标之一是在编程环境中创建固件,以实现低成本系统、软件可靠性以及快速的开发迭代时间。实现这种编程环境的最佳方法实践是使用统一的固件架构体系结构,该体系结构在产品开发过程中充当框架并支持“固件模块化”,或称为子系统。如果不采用统一的设计架构,那么其业务需求耦合关系复杂,不采用先设计-后开发的方法论,想到哪里写到哪里,则程序后期维护将变得异常艰辛,而引入潜在bug/缺陷的风险也将大大增加,且不具备多人协同开发的可能。可以结合固件模块化、可测试性和兼容性的正确组合的设计体系架构结构应用原创 2021-03-16 13:53:35 · 7295 阅读 · 1 评论 -
单片机 不使用浮点运算,两个数做除法怎么优雅地四舍五入
单片机 不使用浮点运算,两个数做除法怎么优雅地四舍五入计算公式: ((a * 10 / b) + 5) / 10; int a = 120; int b = 19; float c; c = ((a * 10 / b) + 5) / 10; std::cout << "%d \n" << c;...原创 2020-07-16 08:47:33 · 5594 阅读 · 0 评论 -
学习嵌入式必看书籍
概述 在此,记录一下,我看过的一些书籍。当然看过,如时间过长定会遗忘这是很正常的现象,但你如有时间再回头看第二边定会有不一样的效果,很多时候,读书就是如何正确的把它读薄,再把它读厚,加上自身的理解为己所用。感觉还不错的嵌入式电子书籍:list:1、基于嵌入式实时操作系统的程序设计技术 周航慈.pdf2、嵌入式系统软件设计中的常用算法(完整版) 周航慈.pdf3、嵌入式Linux应用开发完全手册_韦东山全系列视频文档全集V2.3.pdf4、手把手教你单片机程序...原创 2020-07-16 08:52:17 · 8072 阅读 · 5 评论