自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Qt 软键盘的实现(QWidget),支持中文输入法、数字、英文切换

**出发点:由于Qt自带的软键盘是QML的,如果使用QWidget模式去编写调用自带的软键盘的话,在ARM下运行会全屏漆黑,并不是我们想要的效果,所以,在网上搜了很多的资料,自己去做了自制键盘,在项目中使用。 **新建一个keyboard的Demo以下是键盘的布局键盘初始化准备好26个输入的字符列表,用作大小写、数字切换 QMap<int,QList<QString>> modelMap; QList<QString> firstList,secor

2021-08-31 15:48:49 4678 22

原创 Qt中自定义提示框messageBox

自定义提示框样式

2020-12-29 15:53:49 10630

原创 瑞芯微rk356x TF卡烧写选择指定的屏幕打印烧写的过程

如果只需要单屏显示的话,可以在内核设备树上把那些多余的显示节点屏蔽了disabled。这样就不需要进行源码的修改。也可以通过理解刚刚的代码解析去进行其他的显示动作。

2024-07-07 17:49:27 485

原创 linux RTC时钟时间出现了明显的偏移

最近发现一款RTC芯片PCF85063,稍微运行个3-4个小时,就会跟系统时间出现明显的时间偏移(大概是2-3秒),按这个计算一天就12秒左右了。不同的晶振输出的频率都会有所差异,比如同样是32.768KZ的不同型号的晶振,在同一个板子上,分别会出现快了5秒和慢了3秒的情况。经过实验,分别换电路图中晶振的负载电容,比如5pf,7pf,12.5pf,15pf,22pf。将芯片放在其他不同型号,封装一样,稳定的板子上测试,这里我推荐是pcf8563,这里基本上可以推测出是晶振还是芯片的问题了。

2024-07-07 17:48:29 545 1

原创 IMX6Q基于kernel3.0.35版本调试GT9xx触摸屏

第二个需要注意的点是:中断获取触摸坐标点后,需要往寄存器中清0,不然 会出现一种问题,中断函数不断在打印。而linux3.0.35是没有设备树,需要通过加载板级初始化文件board-mx6q_sabresd.c来初始化各个总线接口,串口,网口,GPIO等。linux内核高版本都是在设备树DTB中配置好节点,然后驱动加载时device_id和设备树的compatible是否匹配得上。由于qt版本的原因,上报的事件只能识别到ABS_X,ABS_Y事件。这是第一个需要注意的点:设置设备的输入参数类型。

2024-05-29 13:55:13 120

原创 IMX6Q基于linux4.1.15调试音频芯片tas2505

获取时钟频率,因为我这边用的是外部晶振,不是使用CPU引脚MX6QDL_PAD_GPIO_0__CCM_CLKO1输出时钟的。如果上面of_match_table 的字符串跟设备树匹配上的话,接下来进入imx_tas2505_probe函数,这里我想说说设置ssi和audmux的方向问题,要么是由CPU输出BCLK,WCLK给音频芯片;tas2505_dai中的name变量名需要跟imx-tas2505.c中struct snd_soc_dai_link中的codec_dai_name变量名一样。

2024-05-29 13:53:18 335

原创 RK3568基于openHarmony3.2版本之GT911触摸屏调试成功

瑞芯微rk3568基于openharmony3.2版本调试触摸屏gt911

2024-03-22 09:36:26 430

原创 rotary-encoder旋钮编码器驱动

按照这个思路,得出了下面encoder_interrupt_handler中断处理函数。如果of_match_table与设备树中的节点compatible匹配上的话,就进入到probe函数中。可以从上述规律中得出:只有第一、三阶段有不一样,第二、四阶段都是一样的电平。顺时针的时候:channelA电平变化:1–>1–>0–>0。逆时针的时候:channelA电平变化:0–>1–>1–>0。channelB电平变化:0–>1–>1–>0。channelB电平变化:1–>1–>0–>0。

2024-01-19 09:04:12 267

原创 RK356x基于Ubuntu20.04搭建ROS开发环境

一开始我以为Qt的plugin没有设置到export的环境变量导致的,其实不是,只需以下指令。然后重新执行就可以了。网上大多数是去执行乌龟那个程序。安装ros-noetic-desktop-full。操作系统:arm64 Ubuntu20.04。1、首先确保开发板是可以联网的。5、向系统导入ROS环境变量。可能会出现以下错误打印信息。4、安装ros完整的依赖项。6、启动roscore。有可能出现以下报错信息。有可能出现以下报错信息。7、启动rviz工具。

2024-01-18 09:12:17 398

原创 瑞芯微RK356x烧写失败分析原因

可以看出在第一个打印信息在DDR初始化,EMMC出现了通信问题,第二个在内核阶段依然报错。按照这个理论判断EMMC出现了问题,更换一块新的EMMC测试一下我的想法对不对。在一批板子中总有几个会出现一些小问题,比如烧写失败,启动不了等现象问题。EMMC如果出现问题会出现USB烧写的时候烧不进去,烧进去了在EMMC启动的时候会报一些mmc报错的打印信息出来。很明显,在这个log打印信息下,DDR初始化失败,我们可以尝试更换DDR去查看。更换之后,这以上两种情况都没有再出现,可以正常烧写并运行。

2023-12-17 16:32:03 937

原创 RK3568基于openharmony3.2版本之MIPI屏幕调试

由于工作需要,RK3568需要支持openharmony3.2系统版本,需要重新移植下载源码并且适配自家公司的核心板。在开发的过程中,可谓是真滴难!!!原本openharmony系统就没有多少开源的资料了,然后整个架构跟linux和Android的SDK不一样,导致开发过程十分缓慢。。。就以MIPI屏幕为例接下来。

2023-11-23 09:44:26 1221

原创 linux arm64 Debian12移植操作手册

2023年6月10号Debian官方出了debian12 arm64版本的。如果需要完全适配这个系统的话,需要linux6.10版本。应客户的需求,需要在Debian11升级为Debian12版本。

2023-10-27 15:39:22 729

原创 RK356x 修改uboot和kernel,让固件支持多个设备树DTB选择

这一点非常重要,为什么这么说呢,因为如果不把按照下面修改的话,会出现启动的时候直接进入recovery的文件系统。由于瑞芯微默认把uboot的环境变量设置成了CONFIG_ENV_IS_NOWHERE ,意思是环境变量将不会存储在任何地方,因此无法使用和修改环境变量。如何需要维持上一次上电前选择的配置的话,我们需要改成CONFIG_ENV_IS_IN_MMC。需要将多个设备树DTB文件一起打包到resource.img镜像中,让uboot启动阶段时选择不同的设备树以达到不同的配置。

2023-09-15 11:39:41 855

原创 linux uboot制作自定义菜单指令menu

由于有时候需要不同类型的屏幕显示,但是来回烧写又显得非常的麻烦,遇到上述问题的话,我们可以采取以下方法去解决刚刚的问题。尝试过在STM32MP157,RK356X,RK3588里使用。U_BOOT_CMD()函数。

2023-09-12 11:37:56 349

原创 RK356x Android11更换默认的Launcher

ubuntu版本:18.04开发平台:RK356xAndroid版本:android11。

2023-08-03 19:51:13 990 2

原创 在瑞芯微SDK源码上构建自己的356x编译固件

在旧的SDK编译的时候也没有这个报错信息,然后通过编译脚本查找:build.sh —> device/rockchip/common/mk-fitimage.sh —>提及到device/rockchip/.BoardConfig.mk–>这个文件是软链接到我们一开始创建的device/rockchip/rk356x/hyb-rk356x.mk。默认的内核配置:sdk源码/kernel/arch/arm664/configs/rockchip_rk3568_defconfig。

2023-07-26 16:00:41 545

原创 Window和linux使用samba实现文件共享

开启Samba的守护进程(mnbd是Samba服务器中负责处理NetBIOS名称解析服务的守护进程,而smbd是负责处理SMB/CIFS协议请求的核心组件。它们分别提供了不同的功能和服务,但都是为了实现Samba服务器的文件共享和网络访问功能)实现无论IMX6作为客户端还是服务端,IMX6系统下与window系统、ubuntu系统文件共享。如果输入以下指令能正常输出的话,证明已经设置了。这就成功连接上了,可以在这个目录下共享文件了。如果连接的时候报,window报以下错误的话。apt-get下载软件包。

2023-07-26 13:59:56 227

原创 瑞芯微 RK356x 基于Android11移植usb接口rtl8723du wifi和蓝牙一体化

Realtek RTL8723DU是一个高度集成的单片机802.11b/g/n 1T1R WLAN,和一个集成的蓝牙2.1/4.2单片机,USB 2.0多功能。它将一个WLAN MAC、一个支持1T1R的WLAN基带、BT协议栈(LM、LL和LE)、BT基带、调制解调器和WLAN/BT RF结合在单个芯片中。RTL8723DU为一个高性能集成的无线局域网和蓝牙控制器提供了一个完整的解决方案。RTL8723DU WLAN基带实现了1发射和1接收路径的正交频分多路复用(OFDM),并与802.11n规范兼容。

2023-07-10 14:06:15 1376 3

原创 Android 开关机POWER键 长按短按代码分析

如果想取消短按熄屏如何做呢?接下来是我的做法如下。

2023-06-29 17:08:08 827

原创 Android11 设置系统时间遇到的问题

Android 11 系统中确实有一个机制,会比较系统时间和编译时间的大小,如果系统时间小于等于编译时间,系统会将时间自动设置为编译时间。不过需要注意的是,这个机制针对的是系统级别的时间,而不是应用程序级别的时间。如果把设置的时间点大于编译时间,重启后就是刚才设置的时间。通过在android系统的界面上设置时间我发现了个问题,如果往后设置时间就会出现重启后,时间不是上次设置的时间。问题:android11 系统时间一定要大于编译的时间才能有效,否者重启后,系统时间会自动变成编译时间。

2023-06-13 11:22:50 327

原创 linux usb摄像头反复插拔出现Unable to handle kernel NULL pointer内核错误

这个是内核中的调用顺序,可能是尝试启用摄像头设备的视频流时出现问题(是由于分配 USB 带宽失败或设置 USB 接口时出现问题导致的。然后经过反复测试,最终在usb_ifnum_to_if(const struct usb_device *dev,适当的在怀疑会出现报错的地方添加一些打印信息,我个人比较喜欢使用“printk()”,很明显这个问题是由于出现访问空指针导致了内核出现崩溃。unsigned ifnum)函数上添加以下语句。查看打印信息,定位到了这个函数。

2023-06-01 09:51:56 910

原创 RK356x在Android11只显示4k分辨率3840x2160

原来在Android系统中,有一个文件是有过滤分辨率的功能,该文件位于Android\device\rockchip\rk356x\common\resolution_white.xml或者Android\device\rockchip\rk356x\rk356x\rk356xxx\resolution_white.xml。如果不做这一步的话,需要驱动是显示了3840x2160的分辨率,但是显示的界面大小还是1920x1080分辨率,需要修改以下系统柜默认的尺寸。调试方法,可以通过查看VOP的状态。

2023-05-29 10:25:05 1651

原创 linux CAN通讯基于Qt代码编写

由于工作需要,将linux中的can通讯编写到Qt上,通过图形界面的方式演示出来。

2023-05-11 10:32:44 2175 4

原创 RK356x之HDMI显示出现输出信号不稳定、花屏、出现红条纹现象

PHY_VLEVCTRL寄存器 (0x0e) 值用于调整 HDMI 的信号幅度,具体定义如下:Bit[0:4] : tmds_clk +/- 信号幅度,值越低,信号幅度越大;HDMI显示器接到控制板上可以显示,但是会出现时不时出现闪烁,红条纹(就好像之前我们家里大块电视上的条纹)。Bit[5:9]: tmds_data +/- 信号幅度,值越低,信号幅度越大。Bit[4:5]:DATA 信号sloop boost。Bit[0:2]:值越大,端接电阻值越大。Bit[3:1]:DATA 信号预加重。

2023-03-23 08:57:48 2183 5

原创 linux上USB检测异常,报错usb 7-1: device descriptor read/8, error -71

USB设备插入检测打印信息,如下。

2023-03-17 09:26:05 2988

原创 STM32Cube STM32MP157 M4端CAN通讯实战

这里非常关键一步就是Parameter Setting重点!!!!!!!:Norminal xxxx这四个参数的设置直接决定了CAN波特率是多少!!!CAN波特率的计算方式 :CAN波特率 = 系统时钟/Norminal prescaler/ (Nominal Sync Jump Width+Nominal Time Seg1+Nominal Time Seg1)数据段也跟仲裁段一样的配置就好了。

2023-03-10 11:55:42 1810 9

原创 RK356x 在uboot下设置GPIO引脚默认电平

首先打开RK356X的SDK软件包,查看一下uboot源码,这次我先在u-boot/common/board_f.c和board_r.c文件上添加GPIO口设置,虽然添加了gpio_direction_output()或者gpio_set_value()类似的GPIO设置的函数,但是用万用表测量了一下,怎么都不起效果。例如你需要先在系统上设置你刚才的设置参数是否生效,输入指令,用万用表测量,等测量无误后再到uboot上进行修改,这样效率大大增大。

2023-02-14 11:30:44 3405 5

原创 linux armhf ubuntu18.04搭建docker

这次搭建docker的环境过程非常的坎坷,一波三折,docker的报错信息一大堆,然后发现这一大堆基本上都是内核没有配置导致的,网上的资料也有限,基本上没有描述docker的报错解决问题。为什么第二步在安装docker的时候会报各种的错误提示呢,这些错误提示的根源就是linux内核,正常来说,有好多配置内核都是默认屏蔽的,所以,需要我们去手动打开,重新去编译。但是往往安装完第四步后,docker的服务是无法正常启动的,会报一堆的错误提示。如果完成第二步和第三步的话,应该docker是能正常运行的了。

2022-12-23 14:38:20 2401

原创 Qt 常用控件样式

做了几个项目之后,发现经常用的几个控件每次都需要设置样式,而且每次都是翻以前的项目样式粘贴复制,很麻烦,还不如直接统一做一下笔记,以后直接粘贴复制得了。省得东找西找。效果如下效果如下:声音滑动条进度滑动条QtableWidget、QTextEdit、QtableView等控件都有滚动条效果如下:效果如下效果如下:

2022-12-08 13:53:40 857 2

原创 Qt 制作圆弧型提示框QDialog

2、如果你该程序是在嵌入式端运行的话,需要有GPU,然后在运行的时候执行在EGLFS模式下,这样圆弧形提示框才生效,否者setAttribute(Qt::WA_TranslucentBackground);

2022-12-02 09:16:46 820

原创 linux驱动 usb转串口ch344 改变读取缓冲区大小

首先客户提出这个问题,我的第一个想法是这是个正常现象,因为我在做应用APP的时候,其实串口发送数据指令的时候,也会偶尔出现一条指令突然截断,先接收到帧头+命令字+类型,然后再接收到长度+数据内容+帧尾这类的情况,就此我们常常会在接收串口的函数中加以判断是否是一条完整的指令。果不其然,看到acm->readsize=128,跟现象截断的字节数刚好一样,然后我尝试单单修改acm->readsize=256,串口无法正常使用,证明readsize肯定跟其他值相关联的,仔细看了下代码,我认为跟这个有关系。

2022-11-29 09:37:12 1440

原创 Qt中QPropertyAnimation动画效果展示

偶然的机会发现Qwidget其实可以通过动画的方式也可以做到QML程序一样的过渡效果,使用QPropertyAnimation类。

2022-10-28 15:20:07 677

原创 基于imx6ul调试DP83848以太网PHY控制器笔记

感觉是没有信号传输到PHY控制器上,一开始我是还以底板上的差分信号线的问题,然后看了下原理图,看到了DP83848芯片中X1引脚是使用外部晶振的同时还用了CPU内部输出时钟频率,有可能导致了两个频率冲突了。最后,就是在MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2替换成MX6UL_PAD_ENET2_TX_CLK__ENET2_TX_CLK。首先是用示波器测量一下X1处的时钟频率,发现虽然有50MHZ输出,但是波形却有点杂乱,更加让我觉得是这个影响了网口通信。

2022-10-26 16:29:04 968

原创 基于imx6ul下调试tlv320aic3x声卡

因为这次声卡芯片是tlv320aic3101,从网上搜相关的资料可谓是少之又少,基本上都是有linux2.6版本的,基本上都是没有用到设备树DTB去适配,看了一下内核源码linux4.1.15只有sound/soc/codecs有tlv320aic3x.c和tlv320aic3x.h这两个文件,而sound/soc/fsl/就没有驱动tlv320aic3x的驱动文件。需要自己从网上去下载或者参照imx-sgtl5000.c去重新写一个。内核版本:linux4.1.15。核心板:imx6ul。

2022-10-21 17:18:00 993

原创 开发板串口终端shell中文或者其他国家语言显示乱码或者问号?的解决办法

从window端创建的文件名在window端显示正常,但是将文件拷入U盘,开发板通过U盘挂载的方式查看里面的文件名或者文件夹,显示都是?查看文件系统是否有locale、localedef指令,如果没有这条指令,可以将交叉编译器中的指令locale移植进来。首先需要查看文件系统是否有/usr/share/i18n/文件夹,没有的话,需要从交叉编译器中的软件包拷贝过来,如下图。如果成功环境都配置成功的话,重新查看ls,如下图所示,会显示中文或者其他国家语言文字了,而不是乱码。1、首先配置内核,新增。

2022-10-09 16:02:37 1331 1

原创 Rockchip基于RK3566/RK3568 WiFi AP6256调试笔记

这次的WiFi模块调试相比上次ap6212WiFi驱动调试笔记又有不一样的收获,这次是纠结在bus-width=为4线一直不行,当把bus-width改为1后(sdio单线模式)后,就能顺利加载模块了。电压不一样也会影响WIFI不能正常工作,如何去切换SDIO3.0和SDIO2.0模式。

2022-09-26 14:36:45 11610 17

原创 linux下USB3.0端口无法识别3.0设备

然后在博客上看到有人尝试把RX和TX中的ESD器件拆了就可以了。白费我研究了这么长时间的软件。过往有USB功能的板子基本上不需要怎么调,只要PCB布线按照规则来一般都没有什么问题。这次从软件上到硬件上折腾了一番,USB的工作原理和驱动实现逻辑都看了一遍了。ESD器件的作用:静电保护元器件,他可保护整个电路体系免受浪涌、脉冲、静电的破坏从而降低损失。本次遇到的是USB3.0的端口插入3.0的设备不通,需要分析其原因。USB3.0只需要RX+,RX-,TX+,TX-。USB2.0的话,把D+和D-。

2022-09-07 15:52:22 3406

原创 IMX6 SD卡启动过程中无法挂载文件系统

报错打印信息:解决办法:这可能是由于SD卡有SD-WP引脚,导致了写保护,只读模式。修改内核Kernel 中driver/mmc/card/block.c。

2022-08-30 10:50:53 498

原创 IMX6 EMMC、SD卡启动引脚配置及uboot修改为SD2启动

解决办法:把ret =!完成了这一步,就大功告成了。这就导致了按照之前的拨码开关去启动,完全没有串口打印信息,就相当于SD卡启动失败,CPU无法找到SD卡中的uboot加载到内存中启动。有很大可能是因为board_mmc_getcd获取不到正确的CD引脚,导致了return返回值为0,打印出了“MMC: no card present”。追踪board_mmc_init()函数,board_mmc_getcd()函数在board/freescale/mx6sabresd/mx6sabresd.c文件上。..

2022-08-30 10:09:47 1299

原创 基于RK3566中RTL8201F网口百兆调试笔记

本次调试是基于RK3568的固件基础上去调试的,不巧的是RK3568使用的是千兆芯片RTL8211。所以配置也有些差异。首先看看RK3568的网口配置是如何的接下来是RTL8201F的配置方法先看看原理图。

2022-08-01 16:21:00 6255 1

7-zip和AXMLPrinter2.jar

里面包含7-zip和AXMLPrinter2.jar包

2023-08-03

Android 系统 rtl8723du 蓝牙驱动

在Android11 系统上成功调通过

2023-07-10

USB rtl8723du wifi驱动程序

在linux4.19内核上移植成功

2023-07-10

基于imx6ul 去调试的tlv320aic3101的驱动

基于imx6ul 去调试的tlv320aic3101的驱动,里面含有tlv320aic3x.c,tlv320aic3x.h和imx-tlv320aic3x.c三个文件,在内核4.1.15版本调试成功的

2022-10-21

wifi(ap6212、cyw43438)驱动及固件.rar

里面是ap6212(cyw43438)驱动及wifi固件和蓝牙固件,亲测都可以使用

2021-11-11

wm8960驱动文件及asound.conf配置

wm8960驱动文件和asound.conf配置文件

2021-09-16

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

TA关注的人

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