- 博客(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
2087
原创 pyside (6) 的基础学习笔三:qrc 转化成 py 的文件
使用 QT 的 qrc 文件 转换 qrc 文件 pyside6-rcc icons.qrc -o rc_icon.py pyside 中的使用,只需要在 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
2042
原创 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
1358
1
原创 pyside (6) 的基础学习笔一:加载 QML
入门 官方模块参考手册 官方新手指导手册(有安装指导) 若读者熟悉 CPP 方式开发 QT 可以简单看一下,官方对比的示例 ##### python vs c++ 两则转换(若不清楚,可以参考 CPP 方式) 1. import vs #include 2. __init__() vs 构造函数 3. self vs this 4. global 拓展到全局 5. @property vs Q_PROPERTY 6. connect(),Q_SIGNALS,Q_SLOTS vs @Slot 7. by
2021-10-11 20:15:00
1851
原创 EXCEL 趋势图生成的公式应用说明
Q1:计算结果与重新代入数值计算结果不符合 建议检查图形,选择散点图 Q2:计算精度不够,修改趋势公式的精度 看具体看本文档最后,选中趋势的公式,将小数位改为 30 操作流程 图形选择 建议选择最基础的 "散点图”,然后填充数据(这里数据是乱输的) 选择显示趋势公式 选择 R2 最接近 1 的公式 调整精度 ...
2021-10-08 11:27:02
2007
原创 opencv(CPP) 无法调用 树莓派 raspberry csi-camera
当你找到这里的时候,应该已经束手无措了吧 1. 请跟着网上先确认 摄像头工作正常(拍照、录视频) 2. 请确认 /dev/video0 这种 v4l2 正常 以上网上都是很多教程 3. 使用 raspicam 模块 去替代原先 VideoCapture 模块的采集功能, raspicam 的数据也能够正常传递给 Mat 类型用以方便后续的内容 ...
2021-09-29 23:37:06
453
原创 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-config sudo apt-get install pkgconf 2. 重新利用 rsync 同步到 host 端 3. 建议重新
2021-08-12 23:45:06
2434
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
1055
5
原创 2020-12-04(01) Anaconda 配合 pycharm编程
若提示 DLL 找不到,但是在激活的环境可以明明存在 请在系统 PATH 中添加 anaconda 的 activate 所在的路径(一般在 yourdir/Script下)
2020-12-04 11:38:02
161
原创 2020-12-03(01)Vs studio 编译 7zip 库
任务: 利用 VS Studio 进行 7Z 库编译 参考链接 1 2 1) 下载 https://sparanoid.com/lab/7z/download.html 2) 打开文件夹 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
1000
原创 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.html 2 关联 #这是 pro 文
2020-12-02 07:34:34
259
原创 20201021-01 QT 程序独立运行时,出现CMD窗口 消除办法
效果 QT 的程序脱离 Qtcreator 直接双击运行出现 CMD 输出debug 调试信息 解决方案: 1 编译条件选一下 Release,这种会默认关闭 debug 相关输出 2 检查一下 有没有使用 QTest 这类调试库,若有就要将它关闭,因为这一定会输出调试信息且无法被编译器优化掉 ...
2020-10-21 14:46:49
3120
原创 2020-08-14 基于栈进行简单四则运算(带括号)
前言: 本例程参考 《数据结构 C语言》版本内 表达式求值一例对于堆栈进行深入研究,后续由于进行重复计算,改用 vector 作为容器但在思维上依旧采用栈先入后出。 核心就是通过当前符号与前一符号进行权重比较,选择计算,消去括号或则只写入符号不运算的方式。 改进点: 1 原先将 前符号位 ) 都需进行运算,这样 )+ 这类实际是有问题改为 < 只填写符号 2 进入 _third 值用于处理 )+2# 这种情况,这是不需要计算的 3 一次计算完成之后通过字符拼接重新构成一个字符串,思维通 拆解计算类似也
2020-08-14 13:49:29
313
原创 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
275
原创 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
378
原创 20200724 Qt/QML全局设定字体属性
修改全局默认字体属性 QApplication app(argc, argv); QFont font; font.setFamily("Ubuntu"); app.setFont(font); 以上就可以了,经过验证 widget / Qml 都可以 Windows 字体库位置 C:\Windows\Fonts Ubuntu / linux 字体库位置 /usr/share/fonts ...
2020-07-24 11:23:33
1450
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 initialized 3 Error : “module ”QtQuick.Controls“ is not installed” 解决方案 1/2 问题可以算一个问题,是 Windows 部署 Qt 没弄好 1)根据你的编译器选择命令行 2) 部署 只是 QW
2020-07-11 12:01:27
1824
原创 20200707-01动态库UNIX使用说明
Unit 系统编程手册-(41-42) 共享库基础 一、静态库 Vs 共享库 优缺点 静态库 共享库 可靠,已经包含运行所需的全部库,与系统无关 运行之前需要确保相关共享库已经存在 加载速度更快 需要运行之前依次检索、加载所需的共享库,以及符号的重新定位 每次静态库改动,相关引用该库程序都需要重新编译 运行时动态加载,所以不需要重新编译 浪费磁盘,每被引用一次就会生成一次副本 运行是加载,所以不需要 浪费内存,每次运行都会在内存生成一次副本 只会在内存中生成一次副本 库更
2020-07-07 15:51:01
236
原创 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
2247
原创 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
2586
原创 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
2494
2
原创 20200617-01 二分检索算法
二分法: 1 对象一定是个有序数列 2 根据排序类型不同,需要修改比较值 从名字就可以知道,就是对半分,不断对半分 假设检索 5 从 123456 第一次: min = 0 max = 5 mid = 2 3 > 5 ? 小=> min = 3, max = 5, mid = 4 第二次 min = 3, max = 5, mid = 4 5 == 5 输出 4 123456 mid =(max+min)/2 min = 0 max = 5 int search_binary(int arra
2020-06-17 11:05:35
160
原创 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
1105
原创 20200615-01 插入排序算法
原理讲解 插入排序的核心思维,就是将值依次与已经排序好的数组进行比较找到自己的位置 思路上与链表插入相似 步骤解释: 待排序数组 [8, 2, 5, 5, 1] 升序排列 0: 不需要比较跳过 1: 2 < 8 Yes 交换 [2] 8 5 5 1 2: 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
192
原创 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
205
原创 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
240
原创 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
179
原创 20200613-02 算法集合-冒泡法
算法讲解 写这个系列的初衷就是网上源码质量参差不齐,我能保证的是个人上传代码都经过程序验证,当然有可能存在不正确的地方,欢迎斧正,第一时间修改,谢谢 冒泡法,可以理解为像个泡泡一样上浮,我们需要的东西上浮,不需要的东西下沉,不断进行两两相互比较,满足条件则交互两个数据之间的位置 举例: 22 11 3 5 99 29 我们需要升序(从小到大排列) array[i] > array[i+1] 第一次: 22 11 3 5 99 29 i:0 22 > 11 交换 11 22 3 5 99 29 i
2020-06-13 11:43:48
164
原创 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
189
原创 2020060-01 QML Flickable内部使用自定义控件无法拖动
问题记录: 在实际操作发现如下现象(望知情者告知一二): 在 Flickable 控件中放入了很多自定义控件,实现类似 ListView 拖动效果,但在 PC 端调试用鼠标拖动功能正常,而在嵌入式设备上通过触摸屏来实验发现,对拖动事件没有反应 问题排查: 后经过排除,发现是因为自定义控件为了设置文本方便使用 Control 作为基类控件,将其改为 Item 作为基类控件,验证发现控件效果类似 ListView 符合计划效果 结论: 猜测很可能是因为 Control 捕获了触摸事件,并且没有将事件传递给 Fl
2020-06-08 11:22:01
805
原创 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
310
原创 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.14 import QtQuick.Controls.impl 2.14 import QtQuick.Templates 2.14 as T T.Tab
2020-05-27 11:26:21
2265
原创 20200522-01修改Linux 主机名
临时: hostname xxx 永久: /etc/hosts /etc/hostname (ARM Linux 中主要改这个文件名就可以了) /etc/sysconfig/network
2020-05-22 14:14:06
220
原创 20200519-01 QCustomPlot 关于标签拖动
一、前言: 推荐阅读内容 https://www.cnblogs.com/swarmbees/p/6058263.html https://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
928
原创 20200514-02 C++ 指针所有权 QML 等释放控件重新读取 C++ 指针出现异常或发现指针被释放等问题说明
一、前言 写 QML 这么久,却因为英文所限没有认真解读,QML 与 C++ 交互最重要的一条就是传递到 QML 的 C++ 对象的所有权,在实际项目开发中会会发现,tableview 或者其他控件被释放之后重新读取原先的 C++ 对象就会发生内存异常,从而导致程序奔溃。 调试之后,会发现是由于 C++ 指针被释放了,当 QML 控件被释放的时候同时释放了 C++ 对象 二、数据权限 Data Ownership Data Ownership When data is transferred fr
2020-05-14 20:03:55
951
原创 20200514-01 QCustomPlot sync load data 异步加载数据
QCustomPlot 在重绘 chart 的时候需要同步处理数据和界面刷新,这样的操作对于资源有限的嵌入式设备来说,很容易造成界面的卡顿 参考文献 1 参考的论坛文章 一、使用前准备 1、简单了解 QCustomPlot 2、简单了解 QtConcurrent::run 用法和作用 二、源码 2.1 QCustomPlot 源码调整部分 2.1.1 QCustomPlot.h 文件 //原先的函数 old function Q_SLOT void replot(QCustomPlot::Refresh
2020-05-13 10:42:06
665
原创 20200511-01 基于 QCustomPlot 移植到 QML 上(qt.514)
源码下载 一:要点说明 replot() 界面刷新(需要单独调用) replot() 这个函数的作用是用于刷新显示界面,根据文档显示,刷新的方式总共有 4 中: rpImmediateRefresh 立即全局更新(先立即重绘表格,然后调用 QWidget::repaint() 重绘整个 widget rpQueuedRefresh 依次更新(先立即重绘表格,然后调用 QWidget::update() 进行更新,避免多次 repaint() 消耗资源) rpRefreshHint (默认)
2020-05-11 15:48:06
3615
2
Qt_wifi_module
2019-03-22
基于407写的VL53l0X程序
2016-10-25
GT9xx 驱动程序 可以使用
2019-06-17
ADS1256 基于 RT-Thread 4.0.2 版本驱动程序
2019-10-31
STC15W 系列红外发射 支持51全平台
2019-08-25
pwm控制程序
2015-11-03
串口程序 MFC
2015-10-28
LASER_RECE.zip
2019-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅