自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_52479948的博客

学吾所爱,行吾所愿;厚德博学,强吾兴邦。

  • 博客(280)
  • 收藏
  • 关注

原创 040——移植数据库sqlite3到i.mx6ull

喵的这下载是真的慢呀,下了一天,挂个梯子好了。是一个在 Unix-like 系统(如 Linux)中用于帮助编译器和链接器找到并使用已安装的库的工具。(Package Config)文件来提供库的各种必要信息,如版本信息、编译和连接需要的参数等。下面这介个makefile应该是根据不同的平台来指定的。ok呀,shell模式可以用了太久没用忘了咋用了哈哈。然后忘了这个了刚刚查了一下这个是帮助链接的文件。最上层的这些貌似是配置咋编译的我研究一下。卡在这了不知道是编译的太慢了还是出错了。

2024-05-12 22:16:49 989

原创 039——解决室内不能使用GPS问题

最近在写论文加上出去玩了一圈所以停更了一段时间。上次咱们GPS有个室内用不了的问题,咱们看看咋解决一下。

2024-05-12 19:12:16 375

原创 038——基于STM32和I.MX6uLL实现uart控制GPS(失败者总结)

一个失败者的验证过程,结论是代码没问题硬件有问题。

2024-05-01 20:32:46 676

原创 037——加入Kconfig机制

Kconfig的由来可以追溯到Linux内核配置系统的演变和发展。随着Linux内核的日益复杂,对于内核的配置和管理也变得越来越重要。为了满足不同硬件和需求的配置要求,Linux内核需要一个灵活且强大的配置系统。

2024-04-28 15:11:54 1333

原创 036——完善编译框架和注释并选择开源协议

经过两个月的努力现在已经写了457MB的代码了├── board├── build├── client├── driver├── OS├── output├── server└── tools├── bash└── src。

2024-04-25 19:57:24 967

原创 035——从GUI->Client->Server->driver实现SPI控制DAC芯片

基于韦东山老师的i.max6ull和linux内核版鸿蒙实现从GUI->Client->Server->driver实现SPI控制DAC芯片。

2024-04-25 06:00:00 158

原创 034——从GUI->Client->Server->driver实现读写EEPROM

之前叫IIC,我们其实是借助EEPROM来测试IIC是不是好用所以名称改一改。我上次写的world这次还在。这样虽然一样长了但是还是很奇怪。

2024-04-23 21:32:51 305

原创 033——项目管理

为什么不需要先pull因为这个是个人分支没人会将代码和到你的分支。这个rebase的操作是往前合并我把第一个也s了所以报错了。develop分支的commit必须是issue的名字。在develop分支把你个人分支的代码merge过来。先git pull更新本地develop分支的代码。代码合并到develop分支的流程之前已经发过了。裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂裂开。合并到develop后就可以关闭了。我把前面的commit合并一下好了。裂开了,我把develop删了好了。

2024-04-23 06:00:00 278

原创 032——从GUI->Client->Server->driver实现ds18b20数据的采集

上次写dht11的时候顺手把ds18b20的GUI一起改了所以这次直接去改client。这说明框架越来越完善了,不过我的框架有一堆问题还没改现在只能将就着用。有了这个框架十分钟就能新增一个模块。大大提高了开放效率。好像程序越来越好写了呢,其实这才是正确的现象。

2024-04-22 17:31:01 170

原创 031——从GUI->Client->Server->driver实现dht11数据的采集

湿度的精度为± 5%RH,检测范围为 5%RH-95%RH,常用于对精度和实时性要求不高的温湿度测量场合。啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,改了一晚上啦,都不好不知道咋回事算了还是用老师的代码吧。算了自己写一个假的好了正常要考虑架构频率进程切换等很多问题所以就简单延时一下好了。这个警告是可能是因为gcc或内核不支持这个级别演延时导致的,不过问题不大。查了内核源码发现好多人都用了,证明是支持的,所以可能是头文件包含的问题。韦东山老师基于中断的驱动程序准确度太低了,所以我们写个不基于中断的试试。

2024-04-22 06:00:00 1082

原创 030——从GUI->Client->Server->driver实现对红外遥控的控制

irda需要通过中断来触发读操作,申请中断需要引脚是输入模式,但是先插入电机后引脚会变成输出模式,所以插入驱动会报错。只要在init时加上一个引脚方向调整就好了。找到问题了,我的buf是整型的因为是直接从上面copy的。按下IRDA会阻塞按下遥控器上的按键解析后会更新。正常应该每个都是2位的,现在都导device里了。除非一直读不然会导致读出的数据都堆积。果然可以拿到了,我在来处理一下数据。我不想用数组就用**好了。

2024-04-19 18:40:56 794

原创 029——从GUI->Client->Server->driver实现对步进电机的控制

把数据先抓化成整型取绝对值除余后在使用按照正负分别设置message,正数符号位是0负数符号位是1.发空会直接死掉所以来了个默认值是0.先来验证一下sizeof(字符指针)到底能不能算出字符串大小。为了好看一些把电机这组放到左面和send在一起了。长度我改用strlen做计算这样就不需要限制了。负数用str转化后会变成奇怪的正数。那就只能限制数据必须是3位了。给他个数组的假象也不行。

2024-04-19 14:14:57 294

原创 028——从GUI->Client->Server->driver实现对SR04的控制

sprintf函数的buf必须是初始化过的内存比如数组或者malloc的地址。遇到其它问题可直接写导评论区或者加群反馈。添加对SR04按键事件处理。添加ioctl的头文件。添加对接收数据的处理。

2024-04-18 15:13:54 507

原创 027——从GUI->Client->Server->driver实现对SR501的控制

我把显示这里需要显示的器件的显示单独放到按键前了,都放下面大的output中显示太乱了。有个奇怪的问题这里的注释如果用''' '''就会报错不知道为啥,只能用#来注释。啊破东西到底怎么配置才能精准啊,不是永远测不到人就是哪里都是人。韦东山老师的用中断实现的太浪费资源了,这个小东西完全没必要啊。出现了意外貌似把板子烧了用这个器件现在一直拿不到消息了。

2024-04-18 03:00:00 356

原创 026——项目管理与由来

在说这个前先来说一下芯片测试是怎么做的,(不一定准确,我看到听到的加上一些个人猜测),晶圆在蚀刻后需要用芯测设备做一次全功能测试,测一次要好几天的那种。测试后做封装,封装完才是一个真正的芯片没封装的时候好像叫DUT。在知网上搜索芯片自检系统等类似的关键字,你会惊奇的发现国外有三十多篇论文国内一篇没有,我猜测可能是半导体这个蛋糕太大了,国内就那几家公司,这种纯提高效率不赚钱的东西大家还没时间做。我觉得学术嘛应该是完全自由的,所以我打算用个限制很低的协议,只要保障大家用它做坏事的时候不会影响到开发者就好。

2024-04-17 02:30:00 1062

原创 025——从GUI->Client->Server->driver实现对LED的控制

服务器程序中我将debug关闭了改为直接由driver_select控制消息回传。这里后面肯定要做相当多的优化暂时只是让他跑起来。客户端则是直接加上通用程序就好了。这里是一个对驱动控制的模板。简单验证一下效果还不错。

2024-04-17 02:00:00 236

原创 024——驱动、server、client、GUI全功能联调

时间不是很多了,我想压缩一下快点把属于毕设的这部分搞完,俺要出去旅游了。所以后面写的东西不会很多了。等我回来接着跟大家详细的分享技术。

2024-04-15 19:34:50 450 1

原创 023——搭建图形化客户端(基于pySimpleGUI)

这个库是一个上层的库,它支持调用下面四个底层库,默认是TKinter。我们项目中用的也是这个。不过会遇到很多问题,因为我们下载的不是最新版。有个bug打印的时候会重定向到output这个框里无语了。这个太卡了也可以不看这个,不过这个是官方的所以比较权威。慎用吧好多功能和API文档描述不一致因为版本不一样。从名字上看我觉得它只是想验证他的依赖库是不是安装了。有很多的资料,我觉得最快的还是直接看demo。这个图形化库还依赖另一个库。这个包5.0以后开始收费了。简单测试了一下木有问题呢。没找到4.14.1.

2024-04-13 17:42:18 864

原创 022——设计通信帧格式

一期设计通信帧及代码验证过程的流水账

2024-04-10 21:55:08 338

原创 021——搭建TCP网络通信环境(c服务器python客户端)

驱动开发暂时告一段落了。后面在研究一下OLED和GPS的驱动开发,并且优化前面已经移植过来的这些驱动,我的理念是在封装个逻辑处理层来处理这些驱动程序。server直接操作逻辑处理层的程序。这次服务器的开发也不会一步到位,先做最简单的然后在逐渐迭代。

2024-04-10 16:37:13 624

原创 020——SPI模块驱动开发(基于DAC芯片和I.MX6uLL)

总线类设备驱动——SPI_spi驱动-CSDN博客。

2024-04-09 19:48:57 1164 1

原创 019——IIC模块驱动开发(基于EEPROM【AT24C02】和I.MX6uLL)

IIC基础知识、linux中的IIC,基于6uLL的IIC上机实验。

2024-04-09 16:47:47 1358

原创 018——红外遥控模块驱动开发(基于HS0038和I.MX6uLL)

红外遥控被广泛应用于家用电器、工业控制和智能仪器系统中,像我们熟知的有电视机盒子遥控器、空调遥控器。红外遥控器系统分为发送端和接收端,如图下图所示。发送端就是红外遥控器,上面有许多按键,当我们按下遥控器按键时,遥控器内部电路会进行编码和调制,再通过红外发射头,将信号以肉眼不可见的红外线发射出去。红外线线虽然肉眼不可见,但可以通过手机摄像头看到,常用该方法检查遥控器是否正常工作。

2024-04-08 20:45:13 1005

原创 017——DS18B20驱动开发(基于I.MX6uLL)

今天破了一个案,dht11和ds18b20一点都不一样,以前一直没深入了解过ds18b20看来小觑它了

2024-04-08 18:39:14 896

原创 016——DHT11驱动开发(基于I.MX6uLL)

DHT11 是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有超小体积、极低功耗的特点,使用单根总线与主机进行双向的串行数据传输。DHT11 测量温度的精度为± 2℃,检测范围为-20℃ -60℃。湿度的精度为± 5%RH,检测范围为 5%RH-95%RH,常用于对精度和实时性要求不高的温湿度测量场合。

2024-04-06 20:13:07 1130

原创 015——步进电机模块驱动开发(基于I.MX6uLL、MX-1502和28BYJ-48)

 低待机电流 (小于 0.1uA) 低导通内阻 MOSFET 功率开关管— 采用 MOS 工艺设计功率管— 1 通道 1500 毫安功率管内阻 0.36 欧姆— 2 通道 800 毫安功率管内阻 0.47 欧姆 内部集成续流二极管— 无需外接续流二极管 较小的输入电流— 集成约 15K 对地下拉电阻— 3V 驱动信号平均 200uA 输入电流 内置带迟滞效应的过热保护电路 (TSD) 抗静电等级: 3KV (HBM)

2024-04-06 14:51:05 1071

原创 014——超声波模块驱动开发Plus(基于I.MX6uLL、SR04和poll机制)

所以当超声波模块中断触发后我们没有接收到。这就是为什么打印会影响中断的原因,这里相当于32库函数里面关闭全局中断的那个操作,实现虽然不一样但是作用是一样的。key_timer_expire函数的参数也不一样,4点几是long,5点几是把结构体传入。这是一个保护中断的自旋锁,这里上锁后其它需要用中断的进程就无法使用了。我们现在用的4.9.88版本用setup_timer。新的5.几的内核使用timer_setup。这个数据后面需要处理一下不然太不稳定了。加入poll机制查询是不是有数据。

2024-04-03 20:34:15 666

原创 013——超声波模块驱动开发(基于I.MX6uLL与SR04)

超声波测距模块是利用超声波来测距。模块先发送超声波,然后接收反射回来的超声波,由反射经历的时间和声音的传播速度 340m/s,计算得出距离。SR04 是一款常见的超声波传感器,模块自动发送 8 个 40KHz 的方波,自动检测是否有信号返回,用户只需提供一个触发信号,随后检测回响信号的时间长短即可。SR04 采用 5V 电压,静态电流小于 2mA,感应角度最大约 15 度,探测距离约 2cm-450cm。SR04 模块上面有四个引脚,分别为: VCC、 Trig、 Echo、 GND。

2024-04-03 18:10:13 1066

原创 问题大全——Linux进程、IO及网络编程(自用)

本文章持续更新中,当前更新时间2024-03-31。

2024-04-01 20:59:40 840

原创 012——LED模块驱动开发(基于I.MX6uLL)

SOC级别的芯片通常电压都比较低,像我们之前用的exynos4412他是1.8V的,我们的i.MX6ULL则是可以做到更低的逻辑1,1.2V。MCU为什么不降低呢,因为它是控制器需要高电压的驱动环境,所以一般都是3.3V和5V的。知道这个就差不多可以写驱动程序了,这就是由操作系统和无操作系统的区别,裸机开发的话我们还要找到其它的寄存器,上面说到的那八个都要找到,但是因为GPIO是通用外设,操作系统已经处理过了,所以我们用的话就会很轻松,甚至可以直接给dev下的GPIO设备写值来控制。

2024-04-01 20:50:59 1114

原创 问题大全——C语言及数据结构篇(自用)

c语言中那些常见且老是忘记的语法和函数使用以及经常会使用但是懒得重新写的小程序

2024-03-31 15:26:44 1110

原创 011——人体感应模块驱动开发(SR501)

人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10uM 左右的红外线,被动式红外探头就是靠探测人体发射的 10uM 左右的红外线而进行工作的。人体发射的 10uM 左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。人体红外模块是一种能够检测人或动物发射的红外线而输出电信号的传感器。广泛应用于各种自动化控制装置中。

2024-03-30 19:40:14 930

原创 010——服务器开发环境搭建及开发方法(下)

NXP、 ST 等公司的官方开发包是使用 Yocto,但是 Yocto 语法复杂,并且Yocto 动辄 10GB,下载安装都很困难,普通笔记本编译可能需要 2-3 天甚至更久,非常不适合初学者(我们不推荐使用 yocto 构建文件系统)。它是一个自动化程序很高的系统,可以在里面配置、编译内核,配置编译 uboot、配置编译根文件系统。这个内容有点多呀,而且可以看出来写了很多的uboot上的app,在启动的环境变量里是直接调用那些app的这样我们就看不到它做了什么了。

2024-03-28 21:17:58 752

原创 009——服务器开发环境搭建及开发方法(上)

我真是麻瓜啊,被一个问题痛击了两次,之前就遇到过这个情况,在另一个shell设置环境变量,不关闭的话一个更早开启的shell是没有对应的环境变量的。然后vscode垃圾我再也不用了,根本就无法跳转,阅读源码很不方便,弃v投s了好吧。内核的编译时间是24年没问题了,但是时间不太对,仔细一看没改时区,我们改成上海就欧克了。我对比了一下这里的.config和存在配置库里的内容一样,我就当他没问题先编译内核了。太大了,linux的平台代码还是太多了,估计后面鸿蒙也会这样。坑爹啊,那到底是哪里的问题呢。

2024-03-28 19:38:37 1043

原创 008——根文件系统(基于鸿蒙liteos-a内核)

系统移植到这就完成了,这最后一期就是和根文件系统还有init进程相关的操作了

2024-03-25 20:41:36 962

原创 007——存储设备(基于liteos-a)

移植liteos-a的存储设备驱动到exynos4412(只是芯片手册仿真移植,架构不同没法上机测试)

2024-03-24 21:02:41 1020

原创 遍历目录下的某个文件并删除

大家在学习时可能会有一个自己的小目录,里面放着各种奇葩代码,有天突然发现,没有空间了,这时候发现遗留了很多的可执行文件,大大的浪费了我们的空间,但是由于层数深,数量多一个一个的删除很麻烦这时候我们的脚本就登场啦。

2024-03-24 19:43:10 229

原创 006——GenericTimer(基于liteos-a)

在操作系统中,需要一个系统时钟,各类芯片都有自己的定时器,它们的编程方法互不相同,这给系统移植带来麻烦。Generic Timer是ARM推荐的一种硬件实现实现,可以实现统一的编程方法。Generic Timer分为两部分:共享的System Counter、各个Processor专有的Timer。:给所有Processor提供统一的时间Timer:可以设置周期性的事件,给Processor提供中断信号。

2024-03-22 21:38:05 850

原创 005——串口移植(基于鸿蒙liteos-a)

按照exynos4412的芯片原理图对串口和GIC做了移植

2024-03-22 20:24:34 1591

原创 004——内存映射(基于鸿蒙和I.MAX6ULL)

学习ARM架构内存映射模型和鸿蒙内存映射部分的代码

2024-03-19 18:31:26 791 1

字符设备驱动实例(LED、按键、input输入子系统)

流水灯实验现象

2023-08-13

Springboot+Vue的校园兼职系统

源码来源于B站https://www.bilibili.com/video/BV1FT4y1L7TA/?spm_id_from=333.337.search-card.all.click&vd_source=aae5a63f882e07ba5ad95349b79ada05 感谢开源的大佬,我把这个程序对我的电脑进行了适配,现在分享给大家

2023-06-08

JAVAEE课设的node镜像文件

基于springboot和vue的校园招聘系统node镜像文件

2023-06-05

嵌入式驱动开发初级知识体系结构图

嵌入式驱动开发初级知识体系结构图

2023-03-25

用QT实现简单的文本阅读器

用QT实现简单的文本阅读器,交作业用的太大上传不了只能这样然后交链接

2023-01-31

用QT实现的进程线程,线程同步和线程互斥程序

用QT实现的进程线程,线程同步和线程互斥程序。所有的实验效果都在文章里。

2023-01-31

用QT实现一个图片阅读器

用QT实现一个图片阅读器,依旧演示效果看文章。

2023-01-30

用QT实现一个简单的登录界面

用QT实现一个简单的登录界面,实验效果再我的文章中

2023-01-29

QT小项目实现一个简单的计算器

QT写一个简单计算器,用了一点简单的布局加上信号与槽机制实现

2023-01-28

SD卡烧入程序和uboot启动程序

SD卡烧入程序和uboot启动程序,和我的学习笔记配套使用。

2023-01-25

C++STL参考手册包括基础语法打不开手册的解决办法

C++STL参考手册包括基础语法打不开手册的解决办法

2023-01-19

C++模板特化匹配规则

C++模板特化匹配规则

2023-01-19

ARM-gcc交叉编译工具链

ARM-gcc交叉编译工具链

2022-12-29

ENSP和相关软件的安装包

ENSP和相关软件的安装包

2022-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除