- 博客(193)
- 资源 (20)
- 收藏
- 关注
原创 STM32 CANFD 基础知识留档
CAN2.0 协议中数据段波特率和仲裁段波特率默认是一致,因此只需要关注传输波特率即可CANFD 协议是向下兼容 CAN2.0 的数据通讯,因此实际使用中需要配置STM32H7 系列支持的标准是 Compliant with CAN protocol version 2.0 part A, B and ISO 11898-1: 2015, -4。
2024-05-14 14:07:06
1598
原创 pyside (6) 的基础学习笔三:qrc 转化成 py 的文件
使用 QT 的 qrc 文件转换 qrc 文件pyside6-rcc icons.qrc -o rc_icon.pypyside 中的使用,只需要在 main python 主 python 文件中import rc_icon.py使用方式"qrc:/resource/icon/allowdown.png"":/resource/icon/allowdown.png"QIcon(QPixmap(":/icons/play.png"))source: “qrc:/resource/icon/
2021-10-11 20:20:11
1911
原创 pyside (6) 的基础学习笔二:python 下的信号和槽,以及属性
属性(在 CPP 中的 Q_PROPERTY)#方式一class Speaker(Qobject): @Property(int) def pp(self): return self.ppval @pp.setter def pp(self, val): self.ppval = val print(val)#取值 s.pp = 10, print(s.pp)#------------
2021-10-11 20:19:14
1165
1
原创 pyside (6) 的基础学习笔一:加载 QML
入门官方模块参考手册官方新手指导手册(有安装指导)若读者熟悉 CPP 方式开发 QT 可以简单看一下,官方对比的示例##### python vs c++ 两则转换(若不清楚,可以参考 CPP 方式)1. import vs #include 2. __init__() vs 构造函数3. self vs this4. global 拓展到全局5. @property vs Q_PROPERTY6. connect(),Q_SIGNALS,Q_SLOTS vs @Slot7. by
2021-10-11 20:15:00
1539
原创 EXCEL 趋势图生成的公式应用说明
Q1:计算结果与重新代入数值计算结果不符合建议检查图形,选择散点图Q2:计算精度不够,修改趋势公式的精度看具体看本文档最后,选中趋势的公式,将小数位改为 30操作流程图形选择建议选择最基础的 "散点图”,然后填充数据(这里数据是乱输的)选择显示趋势公式选择 R2 最接近 1 的公式调整精度...
2021-10-08 11:27:02
1688
原创 opencv(CPP) 无法调用 树莓派 raspberry csi-camera
当你找到这里的时候,应该已经束手无措了吧1. 请跟着网上先确认 摄像头工作正常(拍照、录视频)2. 请确认 /dev/video0 这种 v4l2 正常以上网上都是很多教程3. 使用 raspicam 模块 去替代原先 VideoCapture 模块的采集功能, raspicam 的数据也能够正常传递给 Mat 类型用以方便后续的内容...
2021-09-29 23:37:06
374
原创 ERROR: Feature ‘pkg-config‘ was enabled, but the pre-condition ‘tests.pkg-config‘ failed
背景树莓派 4B 交叉编译 QT5.14.2 过程中,遇到如下报错#执行 configure 提示如下错误ERROR: Feature 'pkg-config' was enabled, but the pre-condition 'tests.pkg-config' failed解决方案1. 在树莓派上安装sudo apt-get install pkg-configsudo apt-get install pkgconf2. 重新利用 rsync 同步到 host 端3. 建议重新
2021-08-12 23:45:06
2228
2
原创 2021-01-06 cadence17 系列配合 LP wizard 10.5 进行自动绘制控件
cadence 17 无法自动的原因由于 17 之后启用的 pad 编辑器指令发生的变化操作步骤1 正常操作2 设置 pad这里可以选择手动启动 pad 生成对应的 pad, 也可以修改脚本bat 脚本在你指定的位置,也就是上图 Script file directory 内填入的内容,双击运行3 保存 pad 使用脚本中的名字,放置到 Script file directory 目录内容其余部分,关闭 pad editor 之后程序会正常继续运行。...
2021-01-06 14:48:53
913
5
原创 2020-12-04(01) Anaconda 配合 pycharm编程
若提示 DLL 找不到,但是在激活的环境可以明明存在请在系统 PATH 中添加 anaconda 的 activate 所在的路径(一般在 yourdir/Script下)
2020-12-04 11:38:02
127
原创 2020-12-03(01)Vs studio 编译 7zip 库
任务:利用 VS Studio 进行 7Z 库编译参考链接121) 下载https://sparanoid.com/lab/7z/download.html2) 打开文件夹DOC 里面有目录介绍C\Util\Lzma 是一个最简单的例程3) 编译 C++ 的库1) 打开工程进入 C:\Users\xueze\Downloads\7z1900-src\CPP\7zip\Bundles\Format7zF利用 VS 打开,我这里使用的是 VS2019 最新版本2) 调整参数调
2020-12-03 16:33:39
848
原创 2020-12-02(01)QSslSocket: TLS initialization Failed (Vs 提示此错误,QtCreate 可以正常运行)
问题: 在装有 Qt 的 win10 平台运行程序,可以正常连接网络换用 Vs 编译或则放置到没有 QT 的环境就出现 QNetwork 无法正常连接网络,根据打印提示出现 “QSslSocket: TLS initialization Failed”相关问题:Qt 论坛文章国内方案1国内方案2我的解决方案:1 下载安装了完整 64bit/32bit 根据自己需要选择http://slproweb.com/products/Win32OpenSSL.html2 关联#这是 pro 文
2020-12-02 07:34:34
201
原创 20201021-01 QT 程序独立运行时,出现CMD窗口 消除办法
效果QT 的程序脱离 Qtcreator 直接双击运行出现 CMD 输出debug 调试信息解决方案:1 编译条件选一下 Release,这种会默认关闭 debug 相关输出2 检查一下 有没有使用 QTest 这类调试库,若有就要将它关闭,因为这一定会输出调试信息且无法被编译器优化掉...
2020-10-21 14:46:49
2917
原创 2020-08-14 基于栈进行简单四则运算(带括号)
前言:本例程参考 《数据结构 C语言》版本内 表达式求值一例对于堆栈进行深入研究,后续由于进行重复计算,改用 vector 作为容器但在思维上依旧采用栈先入后出。核心就是通过当前符号与前一符号进行权重比较,选择计算,消去括号或则只写入符号不运算的方式。改进点:1 原先将 前符号位 ) 都需进行运算,这样 )+ 这类实际是有问题改为 < 只填写符号2 进入 _third 值用于处理 )+2# 这种情况,这是不需要计算的3 一次计算完成之后通过字符拼接重新构成一个字符串,思维通 拆解计算类似也
2020-08-14 13:49:29
273
原创 20200805 Ubuntu Doxygen 生成文档简单说明
更多用法,官方文档//! xxx类似//! \brief xxx/*! xxxx //可以在界面中显示 more 这样的连接*/\brief 介绍\remark 备注\param 参数介绍\see \sa xxx() 链接某个函数//!< 变量介绍int a; //!< xxxx同时支持 MarkDown 语法doxygen gui 可直接下载通过命令行的方式sudo apt install doxygen-gui启动 运行 doxywizard配置
2020-08-05 15:21:11
239
原创 20200727-01 Qt嵌入式 windows 外部程序
// QString cmd = "C:/Windows/system32/calc.exe";// STARTUPINFO si = { sizeof(si) };// PROCESS_INFORMATION pi;// si.dwFlags = STARTF_USESHOWWINDOW;// si.wShowWindow = true;// bool bRet = CreateProcess(// NULL,// (LPWS
2020-07-27 11:01:40
319
原创 20200724 Qt/QML全局设定字体属性
修改全局默认字体属性 QApplication app(argc, argv); QFont font; font.setFamily("Ubuntu"); app.setFont(font);以上就可以了,经过验证 widget / Qml 都可以Windows 字体库位置C:\Windows\FontsUbuntu / linux 字体库位置/usr/share/fonts...
2020-07-24 11:23:33
1322
1
原创 QT 环境部署 双击无法启动 Qt程序中可启动
Qt 在 Windows 平台部署遇到问题1 "could not find or load the Qt platform plugin “windows” in “”2 QT no Qt platform plugin could be initialized3 Error : “module ”QtQuick.Controls“ is not installed”解决方案1/2 问题可以算一个问题,是 Windows 部署 Qt 没弄好1)根据你的编译器选择命令行2) 部署只是 QW
2020-07-11 12:01:27
1666
原创 20200707-01动态库UNIX使用说明
Unit 系统编程手册-(41-42) 共享库基础一、静态库 Vs 共享库 优缺点静态库共享库可靠,已经包含运行所需的全部库,与系统无关运行之前需要确保相关共享库已经存在加载速度更快需要运行之前依次检索、加载所需的共享库,以及符号的重新定位每次静态库改动,相关引用该库程序都需要重新编译运行时动态加载,所以不需要重新编译浪费磁盘,每被引用一次就会生成一次副本运行是加载,所以不需要浪费内存,每次运行都会在内存生成一次副本只会在内存中生成一次副本库更
2020-07-07 15:51:01
199
原创 20200628-01 树莓派4B 交叉编译 Qt5.14.2 基于 ubuntu18.04 & ubuntu20.0
前言执行流程包含树莓派上的操作,以及 PC 机上的操作,可以通过后缀[pi] 或 [pc] 来区分,整个教程参考这些文章和视频如有需求可自行前往Qt 官方教程文档Qt For X11 要求他人教程文档他人完整教程视频正式流程1) 安装 树莓派 4B 系统直接去官网下载,这是我选用的版本window 下可以用这个作为烧写器2) 树莓派安装库树莓派从 4B 版本开始于前面几个版面使用的显示插件略微有些许不同,这个会在后续步骤支出2.1 连接 树莓派默认用户名 pi 密码 raspb
2020-06-28 16:02:19
2107
原创 20200620-01 Qt5.14.2 交叉编译触摸输入 Tslib1.14 / evdev 等方式详细说明
输入事件类型官方文档说明./configure -help //可以看到这些输出-libudev............ Enable udev support [auto]-evdev ............. Enable evdev support [auto]-imf ............... Enable IMF support [auto] (QNX only)-libinput .......... Enable libinput support [auto]-mtde
2020-06-20 17:22:11
2366
原创 20200618-01 Qt widget 按钮事件捕捉 Qml 点击事件捕捉(电容屏触摸输入)
起因设备需求点击之后触发蜂鸣器,有两套方案:每个按钮都写入这串指令,令其能够调用触发蜂鸣器的类通过全局的方式,这种只需要一个地方写调用程序即可,更加可行一点QWidget 触摸事件捕捉QWidget 是比较简单能够捕捉触摸事件的,就是对 QApplication 中的 notify 进行覆盖bool MyApplication::notify(QObject *obj, QEvent *event){ //常规鼠标点击或按键 if((obj!=NULL) &&am
2020-06-18 11:29:38
2331
2
原创 20200617-01 二分检索算法
二分法:1 对象一定是个有序数列2 根据排序类型不同,需要修改比较值从名字就可以知道,就是对半分,不断对半分假设检索 5 从 123456第一次:min = 0 max = 5 mid = 23 > 5 ? 小=> min = 3, max = 5, mid = 4第二次min = 3, max = 5, mid = 45 == 5 输出 4123456 mid =(max+min)/2 min = 0 max = 5int search_binary(int arra
2020-06-17 11:05:35
124
原创 20200617-01 sizeof 和数组使用上的注意实现 C/C++
一、示例说明//代码示例//情景一:int main() { int array[] = {1,2,3,4}; std::cout << sizeof (array) / sizeof (*array) << std::endl; return 0;}//情景二:int test_func(int array[]) { std::cout << sizeof (array) / sizeof (*array) << std::endl;
2020-06-17 10:41:29
1058
原创 20200615-01 插入排序算法
原理讲解插入排序的核心思维,就是将值依次与已经排序好的数组进行比较找到自己的位置思路上与链表插入相似步骤解释:待排序数组 [8, 2, 5, 5, 1] 升序排列0: 不需要比较跳过1: 2 < 8 Yes 交换 [2] 8 5 5 12: 5 < 8 Yes 交换 [2 5] 8 5 1; 2 < 5 No 结束3: 5 < 8 Yes 交换 [2 5 5] 8 1; 2 < 5 No 结束4: 1 < 5 Yes 交换 2 5 5 1 8; 1
2020-06-15 11:00:58
155
原创 20200613-04 PAT 甲级试题 03 List Grades
思路讲解 本题的核心在于排序(降序) 所以可以选用比较常见的几种排序算法,如冒泡,快排,插入,选择等等快速排序详解冒泡法详解这里选用递归类型的快速排序法,具体详细看代码源码#include <cstdio>#include <cmath>#include <cstring>#include <vector>#include <tuple>#include <iostream>using namespace s
2020-06-13 17:30:26
158
原创 20200613-03 快速排序 递归和非递归两种方式
算法原理简单说来,就是分而治之,现在随意取一个值作为基准对照值,1 从右往左,直到遇到第一个大于对照值的,与对照值交换位置2 从左往右,直到遇到第一个小于对照值的,与对照值交换位置3 重复 1/2 步骤,直到左右指针相遇,退出4 从相遇位置为分割线,将两个数组重复进行 1/2/3 步骤,直到全部都结束递归方式排序eg数组: 6 8 2 9 33 2 3第一次:取左侧第一个值为对照值 (tmp = array[p_tmp])tmp = 6 p_tmp = 0 (tmp 所在位置指针)右边
2020-06-13 17:02:54
206
原创 20200613-01 PAT 甲级试题 02 Read Number in Chinese
思路讲解核心一: 数值的分解1.1 大单位分解因为需要添加 “Yi" 和 " Wan” 两个单位,所以我的思路第一步是将其拆解成 3 个部分//这里使用的是 C++ 所以单位转化规范一点比较好 int num_array[] = {static_cast<int>(n/100000000), //亿 static_cast<int>(n % 100000000 / 10000), //万 sta
2020-06-13 12:06:47
145
原创 20200613-02 算法集合-冒泡法
算法讲解写这个系列的初衷就是网上源码质量参差不齐,我能保证的是个人上传代码都经过程序验证,当然有可能存在不正确的地方,欢迎斧正,第一时间修改,谢谢冒泡法,可以理解为像个泡泡一样上浮,我们需要的东西上浮,不需要的东西下沉,不断进行两两相互比较,满足条件则交互两个数据之间的位置举例: 22 11 3 5 99 29 我们需要升序(从小到大排列) array[i] > array[i+1]第一次: 22 11 3 5 99 29i:0 22 > 11 交换 11 22 3 5 99 29i
2020-06-13 11:43:48
134
原创 20200612-01 PAT 甲级试题 01 Rational Sum
一、解析1.1 核心算法从题目来看,核心就是计算最大公因数,通过资料可知有两种方式能够计算出结果方式一:辗转相除法 (欧几里德算法)方式二:更相减损法 (《九章算术》的一种求最大公约数的算法)方式三:辗转相减法 (尼考曼彻斯法)这里由比较详细的图文解说,如果不是很清楚可以查看一下1.2 实现这里选择比较熟悉的辗转相除int find_com(int a, int b) { int max; while(b) { max = a % b; a = b; b = max;
2020-06-12 15:08:01
155
原创 2020060-01 QML Flickable内部使用自定义控件无法拖动
问题记录:在实际操作发现如下现象(望知情者告知一二):在 Flickable 控件中放入了很多自定义控件,实现类似 ListView 拖动效果,但在 PC 端调试用鼠标拖动功能正常,而在嵌入式设备上通过触摸屏来实验发现,对拖动事件没有反应问题排查:后经过排除,发现是因为自定义控件为了设置文本方便使用 Control 作为基类控件,将其改为 Item 作为基类控件,验证发现控件效果类似 ListView 符合计划效果结论:猜测很可能是因为 Control 捕获了触摸事件,并且没有将事件传递给 Fl
2020-06-08 11:22:01
726
原创 20200604-01 PathView mouse drag 实现鼠标拖动 安卓设置时间效果,循环
前言pathView 与 ListView 等具备类似的效果,不过区别是 pathview 可以根据 path 定义的路径进行循环的运行代码PathView { property string displayUnit: "" property int displayStartValue: 0 id: list highlightRangeMode: ListView.StrictlyEnforceRange highlightMoveDuration: 20
2020-06-04 12:01:28
262
原创 20200526-01 QML 基于 Qt Quick Templates 2 模板重构控件教程
一、前言Qt Quick Template2 提供了大量非虚模板控件import QtQuick.Templates 2.15 as T官方网页二、以 TabButton 为例/* !注意:本控件专为 Troika 项目创建,不具备通用性 */ import QtQuick 2.14 import QtQuick.Controls 2.14import QtQuick.Controls.impl 2.14 import QtQuick.Templates 2.14 as T T.Tab
2020-05-27 11:26:21
2059
原创 20200522-01修改Linux 主机名
临时:hostname xxx永久:/etc/hosts/etc/hostname (ARM Linux 中主要改这个文件名就可以了)/etc/sysconfig/network
2020-05-22 14:14:06
180
原创 20200519-01 QCustomPlot 关于标签拖动
一、前言:推荐阅读内容https://www.cnblogs.com/swarmbees/p/6058263.htmlhttps://www.cnblogs.com/xiongxuanwen/p/10102301.html以及官方文档二、正文//新建一个标签 m_label = new QCPItemText(m_plot); m_label->setClipToAxisRect(false); m_label->setPadding(Q.
2020-05-19 15:20:11
810
原创 20200514-02 C++ 指针所有权 QML 等释放控件重新读取 C++ 指针出现异常或发现指针被释放等问题说明
一、前言 写 QML 这么久,却因为英文所限没有认真解读,QML 与 C++ 交互最重要的一条就是传递到 QML 的 C++ 对象的所有权,在实际项目开发中会会发现,tableview 或者其他控件被释放之后重新读取原先的 C++ 对象就会发生内存异常,从而导致程序奔溃。 调试之后,会发现是由于 C++ 指针被释放了,当 QML 控件被释放的时候同时释放了 C++ 对象二、数据权限 Data OwnershipData OwnershipWhen data is transferred fr
2020-05-14 20:03:55
853
原创 20200514-01 QCustomPlot sync load data 异步加载数据
QCustomPlot 在重绘 chart 的时候需要同步处理数据和界面刷新,这样的操作对于资源有限的嵌入式设备来说,很容易造成界面的卡顿参考文献1 参考的论坛文章一、使用前准备1、简单了解 QCustomPlot2、简单了解 QtConcurrent::run 用法和作用二、源码2.1 QCustomPlot 源码调整部分2.1.1 QCustomPlot.h 文件//原先的函数 old functionQ_SLOT void replot(QCustomPlot::Refresh
2020-05-13 10:42:06
559
原创 20200511-01 基于 QCustomPlot 移植到 QML 上(qt.514)
源码下载一:要点说明 replot() 界面刷新(需要单独调用) replot() 这个函数的作用是用于刷新显示界面,根据文档显示,刷新的方式总共有 4 中:rpImmediateRefresh 立即全局更新(先立即重绘表格,然后调用 QWidget::repaint() 重绘整个 widgetrpQueuedRefresh 依次更新(先立即重绘表格,然后调用 QWidget::update() 进行更新,避免多次 repaint() 消耗资源)rpRefreshHint (默认)
2020-05-11 15:48:06
3289
2
ADS1256 基于 RT-Thread 4.0.2 版本驱动程序
2019-10-31
STC15W 系列红外发射 支持51全平台
2019-08-25
LASER_RECE.zip
2019-08-25
GT9xx 驱动程序 可以使用
2019-06-17
Qt_wifi_module
2019-03-22
基于407写的VL53l0X程序
2016-10-25
pwm控制程序
2015-11-03
串口程序 MFC
2015-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人