自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fhqlongteng的博客

非著名软件专家

  • 博客(105)
  • 资源 (2)
  • 收藏
  • 关注

原创 STM32 USB高速USB端口加持4G联网

关于STM32F4USB驱动程序(FULL SPEED)目前是可以用,但是有很多问题,比如NAK的问题,导致U盘读写出错。USB底层驱动程序中进行OUT传输时必须增加一个1ms延时的问题。等等储多问题。本文高速USB的驱动程序参考了网友@sakumisu的文章:[基于 CherryUSB 调试 dwc2 usb host 笔记](https://club.rt-thread.org/ask/article/9c31ce71ead26c2b.html "基于 CherryUSB 调试 dwc2 usb hos

2022-07-07 16:10:38 1117 2

原创 首创STM32 USB主机驱动4G rndis设备

1、技术现状 4G模块支持的对外通信接口有串口和USB接口,串口一般使用AT指令的方式,这个在MCU类产品上面使用的很多,US

2021-05-30 15:56:43 6963 22

原创 树莓派上编写串口助手软件

1、 导读 本文介绍了使用python ,PyQt在树莓派的linux系统上编写一个串口软件的助手,重点介绍相关软件包的安装,串口助手软件的如何编译生成可执行文件。2、安装相关软件 读到这里,你应该先有一个树莓派并且安装好树莓派的系统,安装方法可以参考我的这个博文。安装相关软件时,一定要提供修改好软件下载源,请参考上面提到的博文,即使用中国科技大学的镜像软件源。否则...

2020-02-17 10:58:55 1498

原创 小内存堆管理算法详细解析

1、小内存堆管理算法介绍 本文所介绍的内存堆管理是RT Thread操作系统中的小内存管理算法,参考mem.c源文件。这个程序适用于小内存的CPU,比如像STM32F这样的只有几十-几百KB内存的处理器。整个内存堆的处理算法简洁,高效,现对其中的原理做详细的介绍。首先先写上整个源代码,如下。内存堆的函数只有主要的4个函数:  rt_system_heap_init   rt_ma...

2020-01-20 23:58:43 1391

原创 rtthread编程及软件包使用经验

本篇博文主要用于记录在使用rt thread系统中遇到的一些问题,经验,软件bug及使用技巧,长期更新。 rt thread操作系统版本:3.1.21、2019.11.25 modbus软件包,mbrtu_m.c函数238行中/*RT_ASSERT(( eSndState == STATE_M_TX_IDLE ) || ( eSndState == STATE...

2019-11-25 11:13:39 6532

原创 SFTP比较本地与服务器文件不同,把新增文件上传到服务器

FTP(文件传输协议),广泛用于客户端和服务器之间文件传输,SFTP即是加密了的FTP,即客户端和服务器之间的文件传输采用的是加密数据数据传输,传输的底层数据使用SSL连接进行加密。 今天讲解的这个程序实现的是把本地文件夹内的所有文件上传到服务器,即实现了FTP软件(FileZilla Client)的功能,这个程序会自动对比要上传的本地文件夹和服务器上文件的数量,发现...

2019-10-03 18:00:29 1538

原创 阿里云上创建FTP服务器和设置两个不同访问权限的用户

简介FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。互联网上提供文件存储和访问服务的计算机,他们依照的是FTP协议提供服务!支持FTP协议的服务器就...

2018-10-10 17:40:10 2636

原创 分享自己使用python+pyserial+pyQT5写的串口调试助手

1、先介绍一下软件的运行环境,python3.6.1(32位) ,pyinstaller 3.3版本, pyserial 3.4版本, pyqt5 5.8.2版本,这些是主要用到的软件包。 在windosw的 cmd命令行下输入pip list可以查看C:\Users\xxxxn>pip listDEPRECATION: The default format will s...

2017-11-14 21:31:15 33439 32

原创 Ubuntu 自启动应用程序的方法

自启动应用程序可以在/etc/rc.local文件中调用脚本来启动应用程序,另外也可以自行编写一个服务来启动应用程序。rc.local脚本本身也是被一个rc.local的服务来调用的。如下图,可以看出rc-local.servce服务调用/etc/rc.local脚本中的相关程序来启动应用。编写一个服务程序用于启动一个/home/eiota/test.py程序,服务文件的内容如下,放在/lib/systemd/system目录下。后面设备再开机就能实现服务的自动启动了。后面设备再开机就不自动启动了。

2024-04-01 10:25:18 548

原创 RK3568 解决MIPI屏幕开机只显示uboot logo的问题

之前写过一篇文章介绍了RK3568驱动MIPI屏幕的方法,这次产品迭代,硬件改版,选型的新的屏幕了。所以再次开启调试屏幕的过程。本以为会和上次一样会轻车熟路,事情总是事与愿违,同样的路,遇到新的坑。

2023-12-29 17:34:13 1417

原创 优化python程序执行速度

从以上结果可以看出,处理100万个数据时,list速度最快,用时0.126秒,bytearray,居中,用时0.270秒, bytes最慢,用于98秒。根据程序的处理数据的需要,代码改动少的情况下使用bytearray来处理,可以提高处理速度。分析代码,代码中变量self.recv_msg使用bytes字节串来存储接收到的数据,程序首先从蓝牙设备中读取数据存储在recv_data字节串中,之后遍历整个字节串,把数据放到self.recv_msg中去。蓝牙接收程序的代码如下。

2023-10-31 16:50:09 155

原创 ubuntu 20.04 RK3568网络的优先级设置

硬件上具有一个有线以太网卡,一个wifi网卡,一个5G网卡。由于操作系统默认的网络优先级为有线网卡的最高,5G网卡次之。在一个业务应用中需要5G网卡的连接外网,具有最高的优先级,以太网卡次之,wifi网卡不用,因此不用管优先级。配置ip.ymal文件如下:这个文件中有一个metric的配置,配置值为100,配置的结果是静态路由IP 的metric值为100, 但是不能改变默认的IP 路由metric值,因此达不到效果。下面是实际操作,创建一个有线以太网的链接,并且修改默认路由的优先级为200。

2023-08-09 21:27:09 1491

原创 RK3568蓝牙程序开发过程

服务器的程序代码如下,代码在服务器端建立一个zsm-server的服务器,对应的uuid为00001101-0000-1000-8000-00805F9B34FC。本文开发使用python语言开发,安装bluez库,可以使用pip install PyBluez来安装,如果安装不上的话,可以使用sudo apt install python3-bluez来安装。先启动设备A的服务器程序,再启动设备B的客户端程序,如果一切正常的话,设备B会收到发送出去的数据,再接收到服务器返回来的数据。

2023-08-09 20:58:02 624

原创 ubuntu 20.04 rtc时间显示问题探究

先说结果,如果RTC驱动不可用或者RTC内部存储的时间非法, 那么操作系统会存储上一次有效的时间,当再次上电时,date命令会使用存储的时间为起始,向后计时。如果没有RTC驱动,操作系统能联网同步时间,每次上电都会自动同步网络时间到系统时间,date读取到的就是正确的北京时间。对于一个新烧写的系统,由于可能没有同步过时间,操作系统第一次启动时,RTC内部读取到错误的时间,并且没有存储的时间,执行date命令会无法读取到时间,这时启动的应用程序中如果使用时间,程序运行就会报错。

2023-07-25 18:44:45 1025

原创 RK3568 AP6275S蓝牙驱动程序调度过程

今年3月份调度了RK3568驱动程序,当时由于时间的问题,AP6275S蓝牙驱动程序没有调试成功。当时仔细检查的设备树的配置。AP6275S使用外部时钟,RK3568程序工作后,hciconfig查看不到蓝牙设备。后来,又对比一个硬件的原理图与开发板的原理图,发现AP6275S的蓝牙串口的RTS,CTS未连接,因此修改硬件飞线连接,蓝牙还是没有设备出来。

2023-05-30 18:49:28 2359

原创 解决ubuntu系统下无法找到硬件串口

ubuntu 系统下pyserial软件无法显示硬件串口

2023-05-25 17:45:58 1149

原创 RK3568平台使用PyQt5遇到的_ZTI18QOpenGLTimeMonitor, version Qt_5问题解决

解决开发需要在ubuntu 20.04 RK3568平台上面使用PyQt5来运行GUI软件,QtGui.cpython-38-aarch64-linux-gnu.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5

2023-04-12 18:38:24 1153 4

原创 OV13850摄像头显示效果调试

简单介绍ov13850摄像头的显示图片亮度的调试方法

2023-03-17 16:58:04 2158 5

原创 RK3568打包导出根文件系统rootfs

RK3568导出根文件系统映像文件,并且对映像文件大小进行缩小,之后生成整个烧写映像文件的过程

2023-03-15 10:17:32 4098 1

原创 RK3568驱动OV13850摄像头模组调试过程

品牌:Omnivision型号:CMK-OV13850接口:MIPI像素:1320WOV13850彩色图像传感器是一款低电压、高性能1/3.06英寸1320万像素CMOS图像传感器,使用OmniBSI+?技术提供了单-1320万像素(4224×3136)摄像头的功能。通过串行摄像头控制总线(SCCB)接口的控制,它提供了全帧、下采样、开窗的10位MIPI图像。

2023-03-06 18:32:42 4091 8

原创 RK3568移植5G通信模组

5G通信模组在RK3568上的移植调试过程

2023-02-24 17:53:15 2235 1

原创 RK3568 MIPI驱动JD9365A触摸屏调试过程

RK3568驱动MIPI屏幕的调试过程

2023-02-22 10:26:50 3902 1

原创 2023年新年flag

新年愿望,新年目标

2023-01-27 16:30:29 870

原创 RK3568连接MIPI屏幕的旋转方法

硬件使用天启的ITX-3568Q板子,软件使用ubuntu 20.04.5,桌面使用lxqt桌面。外接10寸 mipi屏幕。屏幕由于竖屏,所以画面是竖着显示的。如下图: (1)通过系统设置来进行旋转显示,旋转显示对LCD设备的显示进行旋转和对电容触摸屏进行旋转。 A、旋转屏幕的方法可以通过系统菜单,如下图,菜单的修改操作实际也是修改的lxqt-config-monitor.conf文件。 B、旋转屏幕的方法通过修改配置文件,文件位于:/home/fi

2022-12-06 18:36:40 2730 3

原创 ubuntu16 ARM 4G双网卡的上网配置

经过以上一系列的操作,可以启动4G网卡了。通过分析quectel-CM的程序代码,关于ip与路由的设置是由default.script文件来实现的,所以修改4G卡的跃点为10, 由于4G网卡获取 dns服务器后改resolv.conf文件时,保留原来的有线网卡使用的dns。根据quecel-CM启动的记录可以查看到,这两个dns是4G网卡的设置的,原来的默认的有线网卡的DNS地址没有了。经过以上设备查看路由配置可以看到eth2 4G网卡的跃点10,有线网卡eth0为50,上外网使用4G网卡。

2022-11-02 15:18:25 2794 2

原创 ubuntu16 ARM更改时区的方法

移植ubuntu16到ARM上时默认的时间是不对的,显示的是UTC的时间与北京时间相差8个小时,修改时间可以使用timedatectl。

2022-10-27 10:11:18 1193

原创 imx6ull驱动开发经验

这个问题是由于板子上运行的内核中符号表中device_create函数没有或对应不上,我这个板子运行的内核是在家中电脑上编译出来,目前测试的驱动文件是在公司的电脑上编译出来,两个内核源代码有细微一的区别导致的。2、加载驱动文件chrdevbase.ko文件时,先使用depmod生成依赖文件时,提示无modules.order, modules.builtin无这两个文件。解决办法:重新配置内核,修改为只选择ARMv7, 通过menuconfig修改,如下图:编译内核后再编译驱动程序就可以了。

2022-10-26 18:25:16 1492 2

原创 vscode 使用makefile 在线调试运行C/C++程序的方法

上一篇文章vscode在线调试C/C++程序的方法中介绍了调试程序的方法,由于文章中使用的编译程序规则是调用task.json中来实现的,不适用于一般的程序。目前大多数程序都是来使用makefile来进行编译来调试的,本文将介绍使用vscode调用makefile来实现程序编译,最后来实现程序调试的方法。

2022-10-18 15:10:57 9207

原创 ubuntu16 ARM网络配置

移植ubuntu 16根文件系统到上面以后,设置开机 eth0为静态IP, eth1为dhcp,动态获取IP。需要修改配置文件如下:/etc/network/interfaces.d/目录下创建2个文件eth0, eth1。当不插网线时,网口默认的启动的延时为5分钟,很长,修改成10秒。修改配置文件如下,修改网络服务。由于网络1设置了动态IP,所以要启动DHCP,在启动文件rc.local中增加如下图。3、修改网口启动等待。

2022-10-04 16:38:09 764

原创 vscode在线调试运行C/C++程序的方法

不得不说vscode软件是我见过的最强大的代码编辑工具,在使用vscode之前一直使用source insight来看代码。从使用vscode看代码来,写代码以后,发现这个软件真是太好用,支持各种编程语言,C, python, java等,最关键的它还能调用调试器软件,实现python程序的在线调试,实现C语言程序的在线调试。之前一篇博文。本文重点介绍使用vscode在线调试C程序的方法。

2022-09-15 14:38:23 3240

原创 IAR软件生成库文件.a的license限制

如下图,产品工程由于编译源代码一直都没有问题,而下面提示的是代码限制是由于为库文件的原因,所以猜测是库文件的原因。其次查看库文件的内容,使用比较工具软件可以查看,发现库文件的编译的IAR软件为9.1,我使用的软件为8.4那是不是由于不同版本的原因导致的,再让A公司使用同样的版本来编译,测试依然不行。首先通过最简单的大小比较,以前能用的库文件为23KB,后面提供的库文件都比这个大,是不是由于大小的原因呢,让对方公司把一个库文件拆成2个库文件,并且降低每个库文件的大小,测试依然不行。

2022-09-02 10:18:11 714

原创 linux shell守护脚本的详解

在linux系统中运行一个应用程序,通常需要使用一个shell脚本程序来启动应用程序,并且监控应用程序是否在运行,如果应用程序故障自己退出就需要通过shell脚本程序来启动它。其实shell脚本程序就是一个很简单的程序逻辑来监测一个复杂的应用程序,类似于在嵌入式软件开发中单片机中使用看门狗来监测程序是否运行,不运行了就复位芯片让程序重新运行的功能。看来在所有软件开发的过程中都存在看门狗这个角色。...

2022-08-12 18:38:28 707

原创 python调用C语言程序的实现过程

python语言的优点很多,当然也有缺点,由于是解释形脚本语言,所以它的执行程序的效率没有C语言快,操作系统硬件相关的操作接口程序都是C程序接口,所以对于一些特殊的应用与操作就要调用C语言程序来实现。...

2022-07-21 18:22:03 2080

原创 ubuntu自动启动运行一个python脚本的方法

通过linux系统启动后会调用rc.local文件来实现,即在rc.local文件中增加启动shell脚本,如下图所示,调用一个mqtt.sh的脚本文件,其中 &表示在后台运行,脚本文件最后再调用你要启动的程序。 shell脚本程序的内容也比较简单,即调用要启动的程序,要增加&表示在后台运行。 python程序的单独运行测试,可以在命令行中输入:nohup ./mqtt_ultra.py &的方式来运行。有的文件运行需要切换到root权限来运行。nohup命令的意思不挂断运行,当你的程序有

2022-07-04 16:41:14 1617

原创 MQTT协议栈原理及交互流程图

图解MQTT协议栈的原理及交互流程图

2022-06-24 11:47:00 1026

原创 python程序的在线调试方法

python是支持在线调试的,可能相关的书籍并没有对此做过多介绍,导致我认为它好像就不能在线调试一样。就在上周我遇到了一个QT界面程序长时间运行后界面卡死后,为了寻找解决问题的原因,我才想到了在线调试,一查发现QT还真支持在线调试。那么怎么使用在线调试呢,python的原生IDE是支持在线调试的,我使用的代码编译器vscode软件,vscode软件基于python的调试器提供了友好的界面支持,用起来体验更好。我就直接使用vscode进行了在线调试。如下图,打开程序选择右上角Debug Python File

2022-06-21 11:53:52 1490

原创 C语言0长度数组的妙用

​0长度数组的意思是数组的长度为0,比如int a[0],它编译后不占用内存空间,即sizeof(a) = 0。C99规定可以为变长数组int len ; int array[len];也就是说数组是程序运行时候才指定数组的大小。常见的是进行输入数据进行初始化。​.........

2022-06-21 11:30:04 908

原创 向Qt Qtreewidget 前面插入数据的方法

Qtreewidget的插入数据的方法

2022-06-16 18:09:34 1042

原创 winUSB设备上位机驱动开发环境的搭建

1、winUSB设备开发的环境 本文选择的winUSB的开发语言为python,USB的软件包为pyUSB,首先你需要准备好python的整个开发环境与相关软件,之后在命令行中执行pip install pyusb,即可完成pyusb软件包的安装。pyusb用于实现USB主机端的USB通信功能 。 winUSB设备的开发可以参考:(8条消息) winUSB设备的开发方法_fhqlongteng的博客-CSDN博客https://blog.csdn.net/fhqlongteng...

2022-05-13 09:59:12 3137 1

原创 winUSB设备的开发方法

1、winUSB功能介绍winUSB设备在win10系统下自带驱动程序的,winUSB设备连接到USB后,可以直接被系统识别,无需安装驱动,实现了免驱的功能。就像键盘、鼠标插入到电脑上直接使用一下。winUSB设备使用BULK传输,具有传输数据量的优点,设备使用BULK IN, BULK OUT,CONTROL3个端点来进行通信。因此winUSB设备在开发USB产品时是一个很好的选择。2、winUSB软件选型 winUSB软件采用RT thread操作系统自带的USB device协议..

2022-05-11 12:01:39 4308

NOR校验码计算工具

这个小工具是运行在win7及以上平台的,不支持在xp系统上运行,可以计算NOR异或和,累加和,MODBUS CRC, ISO14443 CRC 开发过程可参考我的博文https://blog.csdn.net/fhqlongteng/article/details/82992467

2018-10-10

pycom串口调试助手

pycom串口调试助手,用于串口数据发送与接收的查看,用于调试CPU串口设备时从电脑上面向CPU串口发送数据,接收数据时调试使用。此软件采用python3 + pyQT5编写,可以运行在win7,win8,win10系统上面。软件无需安装,双击直接运行。相比目前常用的串口助手,具有usb转串口硬件从电脑断开时,软件不会死机的特性。自己一直在用,很顺手。

2017-11-19

空空如也

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

TA关注的人

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