- 博客(42)
- 资源 (15)
- 收藏
- 关注
原创 QCustomplot异常“QPainter::begin: Paint device returned engine == 0, type: 2”的修复
【代码】QCustomplot异常“QPainter::begin: Paint device returned engine == 0, type: 2”的修复。
2023-06-14 01:20:15
1129
1
原创 Qt5.12.12 编译 QtHttpServer 手记
使用vscode打开源码目录,依次点开httpserver、sslserver下所有的.cpp、.h文件,只要包含的头文件中有 private的,都将其删除。http-paser是qthttpserver的组件,需要将下载的http-parser放到src\3rdparty\http-parser\中。
2022-12-26 00:34:31
555
1
原创 Qt5.12.12 编译QtMqtt模块5.15.2手记
下载并解压源码在Qt工具链相应include目录下创建QtMqtt目录将源码src/*.h拷贝到上述目录中修改qmqttconnection.cpp文件169行,修改内容如上修改qmqtttopicname.cpp文件148行,修改内容如上执行以下脚本xcopy * . h D:\Qt\5 . 12 . 12\mingw73_64\QtMqtt # 修改代码 qmake。
2022-12-26 00:04:35
1561
原创 Qt下字符串列表按照自然顺序排序
有一组字符串:{"L5A90E","L46c80","L5A91E","L46C80"}希望经过排序后的结果为:("L5A90E", "L5A91E", "L46c80", "L46C80")代码如下:void stringListSortDemo(void){ QStringList sl = {"L5A90E","L46c80","L5A91E","L46C80"}; QCollator collator; collator.setNumericMode(true
2022-02-22 00:38:20
2534
原创 沁恒 CH32F103C8 (套用STM32 HAL库)CAN总线初始化注意事项
CH32F103C8号称是兼容STM32F103C8的,但在调试CAN总线时,遇到了一些问题。基础代码通过STM32CubeMX生成,但是在执行 void MX_CAN_Init(void) 时始终不能通过。查看沁恒官方的CAN总线测试程序,发现如下操作:uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct){ uint8_t InitStatus = CAN_InitStatus_Failed; uint32
2022-01-26 17:31:36
5275
原创 ESP32 TF卡读写性能优化
在做SD_Test.ino测试的时候,发现其testFileIO测试进程非常慢。仔细分析,有几个因素会影响读写性能。SPI接口速度将SPI时钟速度调到16M //if (!SD.begin()) if (!SD.begin(SS, SPI, 16000000)) { Serial.println("Card Mount Failed"); return; }DSTATUS ff_sd_initialize(uint8_t pdrv){
2022-01-13 14:26:35
2277
1
原创 避免microPython解析GPS数据丢精度
GPS定位点数据,一般是6位精度的浮点数其纬度范围可定义为-90~90(-89.999999~89.999999)其经度范围可定义为-180~180(-179.999999~179.999999)但是microPython解析float型,会丢失精度(好像是保留4位小数),因此在解析GPS坐标数据的时候,可以换个思路,将其解析为扩大100万倍的整型,方法如下: def gnssParseValue(value): # 传入的参数是一个字符串,'3158.4608'这样的,解出形如319743
2022-01-03 14:10:30
479
原创 GNSS时间转换为UTC+8时间
GNSS时间转换为UTC+8时间NMEA输出的GNRMC数据中,时间信息是格林威治时间,和我们东八区的时间相差八小时,要将其转换为东八区的时间,可以用以下方法:#include "math.h"#include "stdbool.h"#include "stdint.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "time.h"#include <sys/time.h>// 参数举例 t
2021-02-08 13:49:51
1406
原创 STM32启动文件中的符号研究:__Vectors、__Vectors_End
STM32的启动文件中,包含了一些可被外部调用的变量,如__Vectors、__Vectors_End等:; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size
2020-05-27 01:03:26
4467
1
原创 在CMSIS-RTOS2中获得微秒us延时
RTOS应用中,经常需要用到微秒级的延时,而RTOS本身的心跳一般在1ms到100ms不等,要用微秒延时时,往往需要额外启动定时器辅助。CMSIS-RTOS2的API中提供了2个内核时间相关的接口:uint32_t osKernelGetSysTimerCount(void);uint32_t osKernelGetSysTimerFreq(void);在阅读这2个API的相关介绍时,能发现它附带的一个示例程序,通过组合调用者2个API,实现100us的延时:#include "cmsis_os
2020-05-18 22:26:07
1376
原创 SmtpClient-for-Qt不能使用ssl发送的处理办法
本文受Qt 5.13.2 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed启发项目需要在特定的时刻通过邮件发送报警信息,主体框架使用Qt开发,找了一个基于Qt开发的邮件客户端程序SmtpClient-for-Qt。使用Qt5.12.6,编译、启动运行都很正常,但是在使用QQ邮箱进行发送的时候...
2020-02-02 19:34:42
803
原创 Qt开发中触发鼠标悬停事件
Qt开发中触发鼠标悬停事件比如我有一个tableWidget,需要在鼠标悬停时,显示一些信息或者打印一些信息,可如下操作:ui->tableWidget->setAttribute(Qt::WA_Hover,true);//开启悬停事件ui->tableWidget->installEventFilter(this); //安装事件过滤器//事件过滤器...
2019-07-11 00:54:06
17420
5
原创 Qt5.12.4编译MySQL驱动备忘
Qt5.12.4编译MySQL驱动备忘背景Qt5.12.4发布,本想不去理会,但changelog中提到 QFile::copy() 的一处bug,恰是当前一个小项目上用到的,虽然也可以想办法规避,但犹豫了一下,还是跟风安装了新版,安装完成后,才发现Qt5.12.4中并没有默认自带 qsqlmysql.dll ,这可叫我头大了,Qt5.12.3时期尝试过自己编译这个驱动,然而并没有成功。现在想...
2019-07-01 17:17:23
1246
1
原创 QCustomPlot自定义Y轴数字格式
QCustomPlot自定义Y轴数字格式需求背景自定义途径需求背景某个项目需要显示一长串曲线图,其Y轴坐标范围变化幅度很大,用了默认的配置,由于坐标轴刻度标签长度不一,曲线总体表现得很难看。自定义途径QCustomPlot 源码版本是:2.0.1经过仔细研读QCustomPlot的源码,发现设置标签格式的函数是:QString QCPAxisTicker::getTickLabel(d...
2019-06-28 12:27:33
4569
1
原创 基于CMSIS-RTOS2的闪灯序列控制
控制灯的基本函数:#include "stdbool.h"void aplRunLedOn(bool on){ HAL_GPIO_WritePin(GPO_RUN_LED_GPIO_Port,GPO_RUN_LED_Pin,on ? GPIO_PIN_SET : GPIO_PIN_RESET);}LED灯的闪烁序列如下:typedef struct{ uint16_t b...
2019-01-10 20:06:36
570
原创 STM32L071硬件I2C读取AM2320数据
STM32L071硬件I2C读取AM2320数据直接上代码// 2019-01-06 19:11:36 Mony:返回值除以10得到实际的温度、湿度值void fmlAm2320GetValue(int16_t *pTemperature,uint16_t *pHumidity){ #define AM2320_ADDRESS 0xB8 uint8_t IIC_...
2019-01-06 19:16:39
2849
4
原创 win 10 1809 下 qtcreator_process_stub 中文乱码的问题
win10 更新到1809后,调试Qt程序,发现qtcreator_process_stub中打印的中文都成了???这样的。网上找到有说法,修改注册表HKEY_CURRENT_USER\Console\ 下对应的codepage为65001可以解决,实测并没有效果。我这边的解决方法是,修改命令提示符的默认属性:使用旧版控制台...
2018-12-08 15:37:08
1117
原创 Qt样式表(QSS)相关的几个链接
Styles and Style Aware Widgets 解释了Qt Widgets的样式实现层级Qt Style Sheets 其子链接详细介绍了QSS的符号、使用以及示例
2018-06-13 00:14:52
671
原创 STM32F302CB使用HAL库采集PWM频率和占空比
单片机运行在36MHz,以TIM2CH2为输入通道,做如下配置:/* TIM2 init function 由CubeMX生成,定时器初始化*/void MX_TIM2_Init(void){ TIM_MasterConfigTypeDef sMasterConfig; TIM_IC_InitTypeDef sConfigIC; htim2.Instance =...
2018-05-02 10:35:50
3636
原创 Win10更新后,Qt调试出现“20133, motion show time: 1502068371”
不记得是Win10更新后出现的,还是早就存在这样的问题,在QtCreator中启动编译好的程序,鼠标点到LineEdit控件中,就会在QtCreator的应用程序输出框中打印出:20133, motion show time: 1502068371频繁切换几次,就会出现系统特别卡的情况。用ProcessExplorer观察应用的运行属性,切到Threads标签页的时候,观察到出现多个搜狗输入法相关的
2017-10-13 15:52:35
405
原创 Qt 5.9.1 (MinGW) 编译MySQL驱动的步骤
Qt 5.9.1 (MinGW) 编译MySQL驱动的步骤解压qt-everywhere-opensource-src-5.9.1.tar.xz中的qtbase部分到某个目录,比如x:\temp。启动安装Qt时生成的命令行快捷方式进入mysql驱动的目录x:\Temp\qt\qtbase\src\plugins\sqldrivers\mysql\用文本编辑器打开mysql.pro,修改内容如下:#Q
2017-08-30 11:14:14
4666
2
原创 U盘安装Win10,遇到“由于存在受损的安装文件 因此安装无法继续”
进入安装阶段,有5大步骤,分别是正在复制 windows 文件正在准备要安装的文件正在安装功能正在安装更新正在完成由于是通过软媒U盘启动制作的U盘启动盘,前面三个过程中,需要U盘全程保持连接状态。在第三个步骤完成后,刚刚进入第四步时,需要及时拔出U盘,否则就可能会出现“由于存在受损的安装文件 因此安装无法继续”这个情况
2017-06-28 13:20:58
33446
5
原创 Qt5.8.0编译MySQL驱动注意事项
Qt5.8.0编译MySQL驱动注意事项在使用MySQL5.7.14时,按照常规方法,使用Qt5.8.0重新编译MySQL驱动之后,在使用的时候发现读取的中文数据在使用toString()转换时,不能得到正确的结果。经查是Qt的MySQL的驱动代码上做了MySQL的版本判断,对不同的版本使用了不同的编码。解决方法如下:打开Qt安装路径中的MySQL驱动相关路径,比如: x:\Qt\Qt5.8.0
2017-02-22 11:50:00
2880
原创 监控进程(二进制程序)运行状态的C语言实现与脚本实现
项目需要,要监控二进制程序是否在运行状态,如果没有在运行状态,则检查是否存在升级文件、升级文件是否可用、是否存在备份文件、备份文件是否需要删除等等功能…… 注意这里会使用file命令检查文件是否是execute,如果程序是可执行脚本,是无法监测的。先放C语言实现方式,代码简单就没写备注
2016-01-22 15:46:07
2660
原创 不做死就不会死……VMware Workstation 12 里的Ubuntu14.04升级后,虚拟机桌面无法适应客户机了
更新了虚拟机里的内核后,重启发现不管vmware的窗口怎么变化,虚拟机的显示区时钟就那么大,怎么也改不了。各种折腾,执行vmware-tools-uninstall.pl卸载,重新编译安装VMwareTools不管用,安装open-vm-tools不管用!二者同时安装也不管用,折腾得没辙了想到下载open-vm-tools源码编译安装,结果发现缺了一大堆的库,一点点补全、重新配置,好不容易./con
2016-01-21 09:54:53
5463
4
原创 Linux下实现一个带时标的消息打印
代码如下:void printTimeStampInfo(const char *fmt,...){ va_list arp; struct timeval t; gettimeofday(&t,NULL); printf("[%ld.%06ld] ",t.tv_sec,t.tv_usec); va_start(arp, fmt);...
2015-11-05 20:24:30
651
原创 QT工程文件的条件编译选择与额外的编译参数配置
QTCreator打开.pro工程文件后,依据不同的构建套件创建项目组。在项目组中,点开构建步骤的“详情”,增加一个自己的宏定义,比如:
2015-10-09 11:23:42
7462
原创 RL-RTX小读之os_sys_init(init)(一)
硬件平台是STM32F407,ARM Cortex-M4内核。查看os_sys_init的定义,在rtl.h中定义如下:#define os_sys_init(tsk)
2015-08-04 15:16:11
3356
原创 Ubuntu 14.04上安装ia32-libs?
要做嵌入式linux开发,方案提供商方面提供的linux平台是ubuntu 12.04 x64,交叉编译器是arm-fsl-linux-gnueabi-gcc,开发手册上在介绍建立交叉编译环境的时候提到需要安装32位兼容库和libncurses5-dev。But,在Ubuntu 14.04上sudo apt-get install ia32-libs不可能成功,除非添加Ubuntu 13.04的源,
2015-07-26 22:27:10
608
原创 关于编译FreeModbus提示 对'pthread_create'未定义的引用 的解决
平台:Ubuntu 14.04 gcc:4.8.2 FreeModbus:1.5.0从sf下载的freemodbus编译到最后,在链接的时候,提示对’pthread_create’未定义的引用解决方法是: 编辑makefile文件第60行,改为:$(CC) $(OBJS) $(LDFLAGS) $(LDLIBS) -o $@重新编译,通过。
2015-05-27 17:11:59
1905
翻译 VMware Workstation 11 中 Ubuntu 14.04 的 VMware Tools 问题 : 共享文件夹
症状:主要表现在Win7中用VM11安装的Ubuntu14.04中,安装完自带的VMware Tools之后,/mnt/hgfs 中没有前面已经设置好的共享文件夹。仔细查看了安装过程,发现在编译vmhgfs/module.o的时候出现了错误。国内网站上也很少有关于这类问题的说明,查到一篇文章[链接]有说明在win8下使用vmware11和ubuntu14.10的,也没能解决我的问题。具体的解决方法是
2015-05-12 10:38:22
24060
23
原创 百度空间已死
挺郁闷的,以前觉得csdn博客访问速度不如百度空间,就一直在那边更新技术笔记,现在空间关闭,内容迁移到百度云,分享没有了,评论没有了……也难怪,盈利才是他们的神圣目标,对于这种没有赢利点的,也没有特别明显特点的小产品,关闭才是最好的结果。自打上次空间改版,就应该能预料到今日结果。
2015-04-08 10:17:02
851
1
原创 RL-RTX小读之os_sem_wait
rtl.h中定义了:#define os_sem_wait(sem,tmo) _os_sem_wait((U32)rt_sem_wait,sem,tmo)rt_sem_wait的实现如下:OS_RESULT rt_sem_wait (OS_ID semaphore, U16 timeout){ /* Obtain a token; possibly
2014-01-07 12:01:34
5340
翻译 【译】RL-RTX(CM3)的任务中不能配置NVIC,否则进入HardFault的原因
RL-RTX(CM3)的任务中不能配置NVIC,否则进入HardFault的原因http://www.keil.com/support/man/docs/rlarm/rlarm_ar_cfgrunpriv.htm运行在特权模式Cortex-M设备的RTX库允许选择用户任务的运行模式。任务可以运行在两个模式:非特权模式——受保护的模式特权模式——不受保护的模式【译注:
2012-06-11 16:19:52
2208
翻译 【译】ARM:如何分析DAbt异常
http://www.keil.com/support/docs/3080.htmARM:如何分析DAbt异常本文信息面向:任意版本ARM问题:我的ARM应用无法工作。当我在软件仿真器或者JTAG调试器中运行时,我注意到程序计数器(PC/R15)跳到了DAbt_Handler标签。问:这意味着什么?我该如何找到我程序崩溃的位置?回答:这是默认的Data
2012-06-11 16:18:12
12250
原创 ucGUI加载“完整”外部字库的方法(1)——从外扩NOR Flash中加载
CPU:LPC2478NOR Flash:MX29LV640EBtypedef __packed struct { U8 XSize; U8 XDist; U8 BytesPerLine; const unsigned char GUI_UNI_PTR * pData;} GUI_CHARINFO; 在我的平台下,外部NOR Flash的
2012-03-04 21:27:34
4069
2
原创 LPC2468的USBHostLite挑盘?
硬件环境:LPC2468U2口作为USB HOST一个2G容量的U盘,标着是现代的,格式化成FAT16格式 移植了USBHostLite之后,运行到FAT_Init()函数,返回值不对了,跟踪进去看看,确实读出来的数据与应该读到的数据不符。在此之前,已经验证另一个2G容量的U盘没问题。格式化多次,依然无果,用WinHEX查看两个盘的区别,有点区别,但是并不能说明问题。抓狂了半个
2012-01-04 22:10:02
2114
3
原创 一元高次方程求解
//本程序基于.NET平台,编译环境是Microsoft Visual C++ .NET//对于VC++6.0平台的修改,只须把stdafx.h换成iostream.h,然后去掉主函数里的“using namespace std”//详情见blog.csdn.net/chinley。//#include "stdafx.h"#include "iostream.h"#include "m
2005-03-18 20:10:00
8076
2
原创 一元四次方程的简单修正算法
//本程序基于.NET平台,编译环境是Microsoft Visual C++ .NET//对于VC++6.0平台的修改,只须把stdafx.h换成iostream.h,然后去掉主函数里的“using namespace std”#include "stdafx.h"#include "math.h"using namespace std;double du,dv;void solu_w(doub
2005-03-18 16:55:00
2611
原创 求解一元四次方程
//本程序基于.NET平台,编译环境是Microsoft Visual C++ .NET//对于VC++6.0平台的修改,只须把stdafx.h换成iostream.h,然后去掉代码中的“using namespace std”#include "stdafx.h"#include "math.h"using namespace std;double du,dv;void solu_w
2005-03-18 15:03:00
4359
3
openssl 动态链接库 1.1.1.4.7z
2020-02-02
Western-Digital-PC-SN720-Commercial-Datasheet.pdf
2020-01-17
product-brief-wd-black-sn750-nvme-ssd.pdf
2020-01-17
STM32F302工程模板,包含HAL库和CMSIS-RTOS移植
2017-06-29
枚举串口小工具
2015-07-22
NXP LPC24xx 系列ARM7串口波特率计算器
2011-12-31
用IAR/KEIL移植uCOS到LPC23xx
2009-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人