嵌入式开发零星时间堆记
文章平均质量分 84
记录自己在嵌入式方面的成长的点滴及问题
guangod
有用的东西都是自己争取来的,担心,害怕,恐惧,往往会坐失良机
展开
-
关于设备连接有人云的使用及modbus rtu协议,服务器端TCP调试设置端口号开启
调试原创 2024-02-22 13:47:07 · 1401 阅读 · 1 评论 -
关于QT程序部署到linux及阿里云平台短信及语音更改服务器主机名
qt原创 2024-01-17 10:16:15 · 1149 阅读 · 0 评论 -
嵌入式应用开发之spi及linux函数累积
弄Linux也有半年多的时间了,自己选择的这条路是相对曲折的,有时真的是没有时间来搞。有时则是自己过分关注一些细节,整的自己的实际项目没有什么进展。实际上是打击了自己学习的积极性。还是要推进些自己有用的项目,而不是依学习进度。要准确判断出自己的进度,不要低估了自己,也不要高估了自己,及时调整自己的策略。原创 2023-10-31 10:14:25 · 405 阅读 · 0 评论 -
嵌入式驱动开发之框架及调试技巧累积
实现了设置类似于按键的消抖处理及将读取到的值放到环形缓冲区队列中的处理。是一个典型的输入设备驱动模型。同时实现了gpio的输出操作。将一个语句封装成一个宏,在程序中常常使用do…while(0)的形式,这样可以节省程序的跳转时间。doprintf;while0。原创 2023-10-31 10:13:05 · 417 阅读 · 0 评论 -
嵌入式c累积之动静态库
动静态库使用原创 2023-10-31 06:52:37 · 323 阅读 · 0 评论 -
【米尔瑞萨RZG2L开发板-创新应用】+家庭防盗机之基本功能体验
米尔arm原创 2023-10-30 09:41:47 · 325 阅读 · 0 评论 -
配套的温度小项目实记
小项目实记原创 2022-10-11 12:10:51 · 480 阅读 · 0 评论 -
嵌入式裸板开发部分(其他在书上)
arm裸机开发原创 2022-08-15 14:43:02 · 446 阅读 · 0 评论 -
登堂入室soc之arm汇编基础
arm汇编原创 2022-07-04 22:07:44 · 193 阅读 · 0 评论 -
登堂入室之soc ubuntu开发环境及准备
soc芯片学习原创 2022-06-10 07:19:16 · 404 阅读 · 0 评论 -
登堂入室之soc初识
初识soc芯片基础关于QG2101A?自带mac与phyDDR?扩展什么是soc?什么又是GPU?GPU与CPU的不同?GPU应用场景?什么又是NPU?什么是xboot?搞了低端的像STM32已经很多年了,虽说早有想法进入真正的Linux领域,还真没有合适的项目。这算是其中一个原因吧,动力不足,毕竟学了也没法赚钱。其二这两年嵌入式基本已经全面铺开了,从低端芯片到高端AI.自己不能算是没有积累,但苦于不知道能做些什么。基于以上两点原因吧,一直没进入高端的linux.从哪里入门呢?就拿眼前遇到的开始吧!2原创 2022-05-08 10:23:52 · 700 阅读 · 0 评论 -
书写软件排坑记OneNote
书写笔记inkodo使用设置手写的字体如何实现键盘打字呢?OneNote使用版本界面图片转文字模板的使用标记的使用电子表格使用插入文件附件审阅 -> 链接笔记使用使用步骤最近复习数学,有些需要计算的题,用纸,倒是可以,但修改起来不方便。电脑能不能实现类似于手写输入呢?查了下,还真有inkodo使用设置手写的字体编辑界面下,点击“钢笔”符号的按钮。往下拉找到 custom 选项。去掉“禁止压力”“禁用倾斜”,设置字体 width=6.5 length=5.即可。如何实现键盘打字呢?这个软件只原创 2022-04-07 11:16:24 · 204 阅读 · 0 评论 -
嵌入式面试题
嵌入式面试题用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。预处理器标识#error的目的是什么?嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?用变量a给出下面的定义关键字static的作用是什么?关键字const有什么含意?关键字volatile有什么含意?并给出三个不同的例子。嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bi转载 2022-03-21 10:55:44 · 1802 阅读 · 0 评论 -
brick环境重建
brick移植hal调度添加过程clone 代码,不展开修改成自已芯片环境,也不展开了复制user framework driver 到工程目录下往keil工程里,添加farmework driver两个文件夹实现系统滴答功能添加过程blink 添加key 添加添加串口,只添加打印操作,不是添加什么命令控制器低功耗管理虽说,样例代码使用的F401的平台,但换成407后,串口一直打印乱码,不禁怀疑人生的程度,经过一天的调试,依然没有解决。不知道怎么回事。还是自己重新移植一遍吧。偷懒解决不了问题。调度添加过原创 2021-12-08 09:01:50 · 172 阅读 · 0 评论 -
从os-cli看串口操作
crick看cli的实现及hal串口操作实现过程分析实现串口初始化cli任务初始化cli_init()初始化实现任务执行串口操作cli初始化时,tty.write()做了些什么呢?串口中断的实现hal库串口操作关于hal阻塞式发送和接收函数中断式发送与接收函数 所谓的非阻塞式发送数据接收数据串口接收到数据时扩展 关于串口的DMA方式相关函数cli,主要是实现输出命令行,控制设备。再就是查询设备状态的作用。实现过程分析实现串口初始化这块是由cube自动生成的。cli任务初始化在cli_task.原创 2021-12-07 09:09:35 · 2535 阅读 · 0 评论 -
markdwon排坑记
markdwon 使用插入图片插入图片时,竖着插入占用大量的空间,很难看,如何旋转图片呢?插入网页链接代码高亮显示??实用的程序接口demo?如何输入换行与空格呢???关于插入数学公式???利用网上,word 与 md 互转格式化之前写过的文档。将已经掌握的删除。由于是蹭的别人的网络,实在是太慢了,真是等的都没脾气了,没办法只得考虑用离线的方式写了,这样记录在本地,写好后上传到csdn。只记录下markdown最常用的使用,待熟悉后再扩展:插入图片如果是网页里的图片的话,在网页图片处,右击,选择“复原创 2021-12-05 17:32:28 · 438 阅读 · 0 评论 -
理解rtt-pm之看门狗与rtc
ospm之看门狗与rtcrtc电源时钟的得到日历的得到自动唤醒闹钟时间戳入侵检测看门狗电源IWDG 独立看门狗WWDG 窗口看门狗从brick看pm使用思路初始化看门狗及任务pm_init()实现了什么?进入休眠如何注册设备的休眠,唤醒函数总结主要是为pm管理打下基础。平台还是F407.rtc这个项目中早就用过了。只是没有了解过内部的运行原理。电源在VDD电源关闭时,可通过VBAT保持上电。时钟的得到一般使用LSE,32768Hz的外部晶振。异步预分频器时钟 fck_APRE=frtc/(PR原创 2021-12-04 16:13:38 · 520 阅读 · 0 评论 -
初识Brick
初识CodeBrick功能任务初始化及任务轮询管理(module)命令管理器(cli)命令格式系统默认命令适配命令管理器命令注册低功耗管理器(pm)如何适配注册低功耗设备blink模块LED驱动按键管理模块初识过程直接clone 代码代码框架module_task_init(),初始化了哪些??判断谁注册 init初始化完后,系统还得需要滴答?这块OS是如何处理的呢?任务调度流程任务注册串口的使用?“代码砖”,也是一种无OS的框架,应该来说经过bos后,再看这个框架要简单很多。好处是也是基于stm32f4原创 2021-12-03 09:16:32 · 493 阅读 · 0 评论 -
bos框架使用
babyos框架使用更新再顺一遍建工程流程新建一个空工程添加bos 代码将os代码添加进工程添加头文件路径修改配置调用必要的函数新版本特点设备注册到使用例子用到的spi与qspi区别:注册注册完后的操作,设备层实现映射到驱动层,完成初始化bSPIFLASH_Init()函数代码调用硬件抽象层万能spi-flash 驱动库驱动层如何调用的硬件抽象层??bDRV\_GET_HALIF(\_if, bSPIFLASH_HalIf_t, pdrv)实现了什么?调用底层库前面已经初步理解了baayos框架,现在就看原创 2021-12-01 16:43:57 · 546 阅读 · 0 评论 -
关于va_start
va_start宏va_list 解决的问题c中的变参?stdarg.h头文件几个重要的宏 含义使用例子关于vsnprintf偶然间按触到了va_list,这到底是个什么东西呢?好奇。va_list 解决的问题VA_LIST 是在C语言中解决变参问题的一组宏,在<stdarg.h>头文件下。c中的变参?其实是指的函数的形参无法全部列出类型和数目时的情形,典型就是打印函数的…;如:void bLogOut(uint8_t type, const char *ptr_file, const原创 2021-11-27 16:37:23 · 1149 阅读 · 0 评论 -
初识bos框架
babyos大体了解下babyos的框架结构移植过程用cubemx,建立一个空工程,这一步就不说了克隆babyos的代码进入用户工程目录执行进入到babyos_hal目录下往空工程里,添加核心文件新建一个Bos/Conifg文件夹新建一个Bos/core文件夹新建一个Bos/Modules文件夹新建一个Bos/Drivers文件夹新建一个Bos/Hal文件夹新建一个Bos/Thirdparty文件夹新一个Bos/Utils文件夹添加头文件添加滴答us延时用户自定义修改硬件接口修改硬件抽象层里面的内容添加自己原创 2021-11-27 15:27:27 · 987 阅读 · 0 评论 -
AB32VG1项目之智能晾衣架
智能晾机架项目开发过程前期准备分离工程导入工程安装包安装最近的rt-thread 包AB32VG1的 SDK包RISC-V-GCC工具链下载硬件搭建开发板上的3.3V能否可用的问题??大体的硬件规划软件设计控制逻辑设计按键线程实现其他线程的实现代码地址视频地址遇到的问题rt-thread studio不习惯,还是用menuconfig来配置,但scons构建时,生成什么格式呢?新建studio工程后,没有rtt配置及软件包的配置界面???直接用sht3x的软件包,没法读出温湿度问题??关于IIC管脚的初始化原创 2021-11-25 14:22:55 · 1120 阅读 · 0 评论 -
makefile深入之编写规则
makefile深入之编写规则.还有哪些makefile编写规则多目标规则自动依赖性规则makefile使用的命令显示命令命令执行变量使用变量使用规则变量值替换变量值再当成变量override 指示符define关键字条件判断语法ifeq关键字ifneq关键字ifdef关键字ifndef关键字函数函数调用语法常用函数foreach 函数call函数origin函数总结接上篇扩展部分如何写makefile还有哪些makefile编写规则多目标规则多目标,也就是冒号前面可以有多个目标,个人觉得这种只是简原创 2021-10-20 15:46:46 · 298 阅读 · 0 评论 -
C++干货
项目实用的C++知识之前看到的,不过自己整理了下。方便以后查找。如下:允许重载:函数名相同,参数类型不同,参数个数不同,即可重载,使用见下面代码: #include <iostream> using std::cout; void func(int a) { cout << "func " << a << "\n"; } void func(int a, int b) { cout << "func " << a原创 2021-10-19 11:45:33 · 356 阅读 · 0 评论 -
关于rt项目开发过程中的排坑记及stm32xx_hal_msp说明cubemx重映射设置
关于rt项目开发过程中的排坑记及stm32xx_hal_msp说明cubemx重映射设置scatter file(分散)文件,rtt官网给出的其实是一个脚本文件有什么作用??stm32l4xx_hal_msp.c文件的作用?关于VCP(虚拟串口)关于找不到用ENV编译找不到stm32l4_XX.h的错误,如下图:这个坑,折腾了一晚上。自己的工程是利用现成STM32L432 ST官方的DEMO来建的工程,每用ENV工具重新生成MDK5工程后,都会自动添加STM32L432 的启动文件,而自己所用的是STM32原创 2021-09-28 16:55:14 · 1290 阅读 · 1 评论 -
vscode 使用排坑记
@TOC格式化之前的文章!vscode 输入代码时,可以自动提示,但一回车就换行了,而不是输入默认的提示???解决:在settings.jsonj里面设置的问题。使用idea快捷键映射??其实是自己映射成了eclipse,而自己一直使用的是idea的快捷键,所以造成ctl+alt+L不能格式化代码。安装上idea后,成功映射如下所示:安装上键盘映射后,出现The ‘clang-format’ command is not available. Please check原创 2021-09-27 17:17:05 · 1424 阅读 · 1 评论 -
LPC824Lite开发板试用
优龙科技lpc824开发板试用过程资料准备硬件过程软件过程安装dap驱动开发环境搭建总结扩展内容进入调试器的升级模式进入ISP,下载程序切换官方工程文件关于板子的jp1通过u盘方式烧写目标代码总结第一次试用优龙的产品,全中文的网站,一眼看去,很清楚!试用过程刚收到的开发板,就直接打开了,如下图所示:资料准备打开优龙的官网,简单看了一下介绍,点右面的 “规格书下载”,等待资料下载完成,如下图所示:从资料上来看,资料可以说是非常贴心的,基本上避免了从官网再找其他资料,不过大体浏览下了官网,当年应原创 2021-09-15 18:11:30 · 732 阅读 · 0 评论 -
LPCXpresso43xx评测
LPCXpresso430评测评测过程从官网下载资料开发准备先要下载keil的支持包LPCOpenkeil芯片板级支持包进入到lpcopen的keil工程目录,打开相应的keil工程调试仿真与下载总结趁周末,玩下lpc430的双核开发板。这块板是历来的评测的开发板中最高级的一个了。评测过程从官网下载资料数据手册,官方提供的文档,是中文,还是比较有亲和力,也同时有点意外。一般大厂芯片厂家,都只有英文的芯片。用户指南原理图及pcb下载,官网还提供了其他的软件开发工具,顺带下载下来就可以,不再一一列了原创 2021-09-05 14:35:43 · 917 阅读 · 1 评论 -
nxp-jack评测
nxp jack board v3.0评测准备工作硬件准备软件准备使用步骤总结看了下官网的资料,这个模块硬件16年已经停产了,自己也没有带jlink,所以没法做一个程序方面的评测。只能是使用上的评测。准备工作硬件准备如下图所示:软件准备先要到官网上下载下来,测试用的APP,安卓的手机就下安卓版的。如下图所示:使用步骤先要打开手机app软件,随便滑动下,可以听到手机喇叭“啪啪”的声音,说明驱动软件启动成功。将模块插入到手机的3.5mm耳机处可以发现ld0这个亮已经亮了,模原创 2021-08-14 18:42:30 · 166 阅读 · 0 评论 -
步进电机控制原理
实则为步进电机的控制知识点电机转动控制加减速原理梯形加速度的实现原理精确计算时间间隔脉冲时间间隔表达步距角位置速度加速度控制过程大体的思路问题解决思路实现算法总结:定时器中断处理总结只是简单记录一下个人认为重要的控制原理。知识点电机转动通过__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, tmp);不停的设置比较值来实现,这个值决定了管脚下一次翻转电平的时间。如设置定时器频率为20M,若此值设置为500,输出脉冲频率为20*106/500 / 2 =原创 2021-07-20 12:27:03 · 1794 阅读 · 1 评论 -
【睿赛德 RW007 WiFi 模块试用连载】计划提醒机之添加温湿度模块
rw007试用计划提醒机项目连载项目描述硬件准备软件实现打开iic设备驱动框架导入软件包更新工程编译mdk工程使全sht3x命令编写线程代码就可以了代码更新心得体会第二篇,应该来说最近比较忙,项目其实是进展到用rw007,上传到服务器后台数据,但为了尽快补齐文章,所以临时打乱计划,先加些额外的模块代码吧计划提醒机项目连载项目描述基本上篇的硬件基础,详见项目描述温湿度模块:sht30/31硬件准备这部分内容与rw007,没什么直接关系。倒是rt- thread 标准版的软件包使用直接相关。找出原原创 2021-07-16 13:53:39 · 228 阅读 · 0 评论 -
rtt之weak
__weak关键字问题weak解决什么问题??使用规则使用例子arm中的weak使用之前注意到过它,但一直没有出什么问题,也就没有再深究。但遇到一个关于它的问题,rtt在调用时,调用了weak声明的函数,而没有调用cubemx自动生成的函数,这样就没有启动设备的时钟,造成工作不正常,要不是一步步仿真,才发现此问题,这种问题不好找,也不太能想到。问题weak解决什么问题??__weak 关键字应用于函数和变量声明以及函数定义。 在GUN或MDK 链接时优先链接定义为非 weak 的函数或变量,如果找不原创 2021-07-10 18:42:30 · 762 阅读 · 0 评论 -
RTT之硬件定时器使用
硬件定时器问题在rt编程手册中的时钟管理与HWTIME设备不同点使用步骤:总结rt定时器设备框架基本的处理流程初始化控制总结 看了一下之前做的rtt笔记,还真没有做这部分的内容,看来当初没看这部分。问题在rt编程手册中的时钟管理与HWTIME设备两者都实现定时器有什么不同???如何合理使用两者呢???不同点时钟管理的HARDTIME模式是通过使用定时器的时钟,一般的就是硬件systick,控制rt_tick,实现计时。rt_tick是系统的时间节拍。超时回调函数在中断处理程序中进行调用。而使用软原创 2021-07-07 16:05:14 · 1248 阅读 · 3 评论 -
【睿赛德 RW007 WiFi 模块试用连载】计划提醒机
rw007试用项目描述:试用过程:基于stm32l431rct6 SPI试用:基于串口AT的试用基于探索者试用相关资料阅读lwip组件wifi管理框架效果及代码:心得体会:关注了“发烧友”公众号,在6月5日闲来无事,看睿赛德RW0007在试用,想着最近项目也不是很忙,就审请了一块,直接进入正题吧。项目描述:背景:由是一个WIFI通信模块,那么可以上传到服务器的后台一些数据。另外,在简单看了RW07可以上传到微信小程序。那么也可以尝试下。根据手头硬件条件,可以上传温湿度及万年历,还可以做一些类似"便签"原创 2021-07-05 17:11:51 · 598 阅读 · 7 评论 -
SourceInsight使用
source insight使用总结source insight使用si4.0使用si3.5使用包含之前3.5的使用总结,两篇合并为一篇!虽然有vscode ,但写硬件程序,还是习惯用si.source insight使用si4.0使用花了一整天时间,基本把si4还原成3.5的界面的样子。还是有不少问题,需要记录下来。添加项目后,发现所有文件的函数都特大,看着特不爽??解决:执行view -> Mono font view(单一文字显示),选上它即可还是之前si4的问题,文件一多了,原创 2021-07-02 17:20:43 · 583 阅读 · 1 评论 -
vscode多文件编译问题
vscode编译c项目多文件编译问题问题:json文件在vscode作用?如何编译多个.c文件呢?扩展:如何写makefile文件阶段体验:编写简单makefile文件总结问题:最近复习数据结构,需要码些代码,vscode在编译多文件时,还是出了些问题,编译单个c是没问题,为什么会这样呢??vscode如何组织多个c文件呢???当然这是本篇最终要解决的问题。但首先还得把自己没搞明白的事,搞清楚。单个文件编译器配置三个文件都是以*.json结尾,那就从json开始。json文件在vscode作用?j原创 2021-06-23 17:09:39 · 2124 阅读 · 1 评论 -
git排坑记
git还是不熟练,使用时依旧遇到很多问题,记录如下:问题及解决:不知好奇还是怎的,从来没用过的一个命令git config --list 输入后,竟然一直出end没法退出???解决:实际是按“q”键退出的。如何在一台电脑上管理不同的git项目?先来说下使用git步骤:也就是平时经常用的命令及相对的使用顺序:设置全局变量git config --global user.name "Your Name"git config --global user.email "email@examp原创 2021-05-18 16:44:55 · 836 阅读 · 0 评论 -
关于markdown输入希腊字母
输入公式时,希腊字母再求助于mathpix,很浪费自己的点,其实也没什么难的,只要记住markdown语法,很容易书写的。仅作为书写时的参考。希腊字母大写 Markdown 小写 Markdown A A α \alpha B B β \beta Γ \Gamma γ \gamma Δ \Delta δ \delta E E ϵ \epsilon ε..原创 2021-05-17 15:47:00 · 3395 阅读 · 0 评论 -
RT-Thread之开发环境找回
自去年在rt-thread基础上开发一款产品之后,一直就放下了,突然再相看看时,只记得有个配置工具。今天又看了下《编程手册》才知道叫ENV.具体怎么用来?还真是想不起来了。以下是记录使用的步骤:1、从官网下载下ENV工具2、将ENV解压到一个不容易删的目录下如文档中:C:\Users\guangod\Documents\env3、进入到env目录,打开env.exe,标题栏右击,如下图:4、这样就可以在任意目录下,使用env来编译文件了。进入到工程目录下,右击就可以5、编译.原创 2021-05-07 18:34:30 · 195 阅读 · 0 评论 -
vs code环境搭建及使用
去年8月份的时候,得到一本韩俊关于vs code使用的书,但遗憾的是,没有看,一直放在家吃灰!好不好用呢?与sourceinsight相比,到底有什么优势呢?试着看看。1、之前已经装好了vscode ,已经装了一些插件了,但忘记装的是什么插件了,如何查看已经装好的插件呢??4按crtl+shift+x会调出如下窗口,installed就是装过的插件:2、如何卸载已经安装的插件?接上图,右击安装的插件,选unistall ,重启vscode 才可以看到被卸载。3、搭建c/c++ 嵌入式原创 2021-03-24 17:08:47 · 1676 阅读 · 0 评论