自定义博客皮肤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的博客

非著名软件专家

  • 博客(90)
  • 资源 (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 226 2

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

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

2021-05-30 15:56:43 3827 13

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

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

2020-02-17 10:58:55 1132

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

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

2020-01-20 23:58:43 964

原创 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 5449

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

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

2019-10-03 18:00:29 1003

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

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

2018-10-10 17:40:10 2428

原创 分享自己使用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 31816 32

原创 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 35

原创 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 342

原创 ubuntu16 ARM更改时区的方法

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

2022-10-27 10:11:18 296

原创 imx6ull驱动开发经验

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

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

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

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

2022-10-18 15:10:57 905

原创 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 255

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

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

2022-09-15 14:38:23 834

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

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

2022-09-02 10:18:11 157

原创 linux shell守护脚本的详解

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

2022-08-12 18:38:28 176

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

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

2022-07-21 18:22:03 841

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

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

2022-07-04 16:41:14 562

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

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

2022-06-24 11:47:00 298

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

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

2022-06-21 11:53:52 550

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

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

2022-06-21 11:30:04 260

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

Qtreewidget的插入数据的方法

2022-06-16 18:09:34 342

原创 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 921

原创 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 1687

转载 解决Ubuntu远程桌面无法正常连接的问题

设备:Windows10主机一台;Ubuntu 16.04 电脑一台。问题描述:参考以下链接访问远程桌面:实现Windows直接远程访问Ubuntu 18.04(旧版本也支持,无需安装第三方桌面,直接使用自带远程工具) - 云+社区 - 腾讯云感谢大佬的经验。在此记录几个关键点:1、在desktop shareing中设置Ubuntu允许远程控制,并设置密码;2、给Ubuntu设备安装vscserver的基础服务,指令为:sudo apt-get install xrdp

2022-04-15 10:39:49 3719

原创 windows 文件在linux下运行显示no such file or directory

1、产生问题的原因:linux系统和windosw系统对文件换行的处理不一样导致的,windows文件换行使用'\r\n',linux中使用'\n'。2、解决办法使用vi/vim打开文件,修改文件格式为unxi格式,原来的格式为dos格式(windows):set ff=unix : 告诉 vi 编辑器,使用unix换行符:wq 保存退出 这就是说,把一个文件从一种系统移到另一种系统,就有换行符的麻烦。如:用 vi 来尝试编辑一个采用 MS-DOS 格式的文件,你将会....

2022-04-14 16:07:41 1073

原创 解决STM32虚拟U盘枚举过慢的问题

虚拟U盘,枚举速度过慢

2022-03-31 16:00:20 718

原创 rt smart操作系统在“正点原子-阿尔法”开发板开箱使用

1、准备正点原子阿尔法linux开发板,SD卡,网络,USB线。由于正点原子的开发板和ART-PI-smart开发板使用的是一样的MPU,所以可以运行ART-PI-smart的程序。 下载ART-PI-smart软件:ART-Pi-smarthttps://gitee.com/rtthread/ART-Pi-smart ,下载后,参考ART-Pi Smart Docs (gitee.io)https://art-pi.gitee.io/smart-website/docs/#/u...

2022-02-05 16:14:39 1427

原创 2022年flag

1、2021年总结 去年的flag在这里:2021年新年flag_fhqlongteng的博客-CSDN博客1.1 工作公司的电力产品经过一年的市场历练,产品质量,性能还行。达行销售额4500万,还差900万就达到收支平衡,这个成绩对于成立一年多的公司来看还是不错的。公司的通信产品已经采用了我设计新的软件设计架构,在一款产品中开发,软件框架开发完成30%的功能,没有达到预期全部完成的效果。1.2 学习完成学习USB虚拟网卡技术,在MCU软件上面实现,即实现通过USB驱动4G...

2022-02-05 14:49:20 386

原创 4G物联网设备使用经验--深刻的教训

我在一个运行三年的物联网设备采用一4G模块(L501)用于通信,4G模块的具有基站定位功能,使用此功能用来定位设备的安装位置。4G的模块AT指令初始化,关联了基站定位的初始化,初始化成功后,才进行联网操作。在2022年1月24日,设备发现无法联网,离线。经过联系模块厂家,厂家说基站定位功能是他们向高德地图购买的服务,无法定位的原因是由于调用次数过多的原因,需要等待时间来恢复。 这一天陆续有多台设备由于断网后自动重新连接导致无法定位成功而无法联网,客户陆续打来电话。做好远程长级的程序关闭......

2022-01-25 12:59:58 2651

原创 python 字节串与list,int, str三种数据类型的转换

1、字节串bytes bytes字节串或叫字节流一般用于底层硬件通信的数据类型,如串口,以太网口,文件读写的返回的都是bytes类型的数据。#打印字节串b=[i for i in range(0x80)]c_bytes = bytes(b)print(“bytes str:”,c_bytes.hex())执行结果:bytes str: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232..

2022-01-08 20:53:51 1389

原创 打包Python脚本快速启动的方法

1、打包python脚本的方法 打包Python脚本程序为可执行文件exe一般使用pyIntaller,本文介绍的打包的程序源码请参考:分享自己使用python+pyserial+pyQT5写的串口调试助手_fhqlongteng的博客-CSDN博客_python 串口调试助手2、遇到的问题 本博客中make_exe.bat脚本中,-F参数是生成一个exe文件,在单独生成一个exe文件时,启动时很慢,大约有5秒的时间才启动,这个时间太长了。原因是单独打包成一个e...

2021-10-27 20:53:58 262

原创 C语言float,hex, dec几种格式的转换

1、测试代码#include <stdio.h>int main(){ signed short a = 0; float temp = 1.0; unsigned char *ptemp; /* 我的第一个 C 程序 */ a = (0xff<<8) | 0x37; printf("a(dec)=%d.%d, a(hex)=%x! \n",a/10, a%10, a); a = -201; printf("a(dec.

2021-10-26 16:19:55 686

原创 记一次解决MQTT软件包内存泄露的心路历程

1、技术背景 物联网产品使用的mqtt连接功能采用的kawii-mqtt软件包,具体的软件包地址在:[kawii mqtt软件包地址](https://github.com/longtengmcu/kawaii-mqtt),当出基于此软件包开发时,解决了此软件包的许多问题(可查看git 提交记录),包括内存泄漏问题,现在已经成功应用在产品上,并且稳定运行。目前的产品应用是mqtt做的长连接,即创建连接后,应用程序不会主动断开连接,可以稳定运行。 最近开发产品由于要做低功耗...

2021-09-27 14:49:11 3754 2

原创 usb rndis主机接收数据错误的分析

1、背景 本程序是一个stm32 usb host驱动4G rndis模块的程序,具体可以参考首创STM32 USB主机驱动4G rndis设备_fhqlongteng的博客-CSDN博客。这个程序在最近移植到真实的产品硬件上面做应用功能测试。测试发现产品在执行特定的操作时,出现4G 模块usb设备主动断开usb连接的情况。2、问题原因浅析 如下图的软件是用于测试4G模块实现的真实产品的功能的测试软件,点击“读取设备时间”,会通过4G网络读取到设备的RTC时间,点击“开关”按...

2021-09-06 13:12:40 353

原创 orCAD软件安装导致Git需要输入密码的问题

最近在电脑上安装了orCAD软件来查看原理图和PCB文件,安装后发现git push代码时要求提示输入密码,那么输入了密码也提示不正确,导致无法上传代码。查看了网上的各种操作,均无法解决,什么重新生成SSH密钥的这些操作全部不行。在git bash的生成密钥的操作中,偶然看到了提示信息中显示出一个路径:D:\orcad\Cadence\SPB_Data\ssh,我分析可能是这里出问题,安装orcad后,软件可能修改了环境变量,导致git bash,git gui在读取ssh密钥时读取到了orcad目...

2021-09-06 11:36:54 82 1

原创 Qt窗口自适应窗口大小的设置方法

1、栅格布局 对于在窗口中的各个窗口控件(如groupbox)进行栅格布局,最后再对整个窗口进行栅格布局,最后即实现了窗口中所有控件随窗口大小调整。2、窗口中表格自适应内容长度的设置 窗口的表格设置成自动适应表格内容的方法,即设置horizonalHeaderStretchLastSection为True。...

2021-07-12 10:18:53 9008

原创 STM32 USB主机传输中断过程

1、STM32F USB主机本文介绍STM32F USB OTG FS主机的中断过程及时序,关于USB通信的原理与报文不在本文的介绍,请参考其他文档。本文根据实际的使用USB主机详细的描述的USB主机中断发生的过程及顺序,是全网少有的文章。本文介绍所涉及的USB主机程序请参考rt thread操作系统的USB主机协议栈与USB主机驱动。2、USB主机OUT传输中断 应用程序调用USB主机驱动发送数据到USB设备,这个过程会在USB总线上面产生OUT传输过程。...

2021-05-16 18:30:40 2413 2

原创 STM32 USB主机通信连接中断过程

1、STM32F USB主机 本文介绍STM32F USB OTG FS主机的中断过程及时序,关于USB通信的原理与报文不在本文的介绍,请参考其他文档。本文根据实际的使用USB主机详细的描述的USB主机中断发生的过程及顺序,是全网少有的文章。本文介绍所涉及的USB主机程序请参考rt thread操作系统的USB主机协议栈与USB主机驱动。2、连接、断开中断 一个USB设备在连接USB主机端口时会发生连接中断,通知应用程序发生了连接中断。USB设备与USB主机端口断开时会发生...

2021-05-16 17:37:30 2303

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关注的人

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