自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 QSqlTableModel使用简介

【代码】QSqlTableModel使用简介。

2023-10-07 09:05:04 463

原创 qt creator常用快捷键

以上是部分qt creator默认的快捷键;在同名.cpp和.h文件中切换。在设计师界面,可以预览当前UI。详情可以打开creator的。自动对齐代码,要选中才有效。弹出选择类的qt帮助文档。

2023-07-06 19:40:24 549

原创 xml核心概念——元素和属性

是一个子元素,其中id是他的属性,请注意属性id的格式,id=号后面的属性内容必须用双引号包含,这个note子元素也有对应的结束符;- 元素的内容中'', '&', '\'', '\"',这几个符号需要分别被 ,&,',"替换;其中第一行是xml的文件头部,不是xml的数据内容,主要作用是用于识别xml文件。是根元素,这是xml中必须的一个元素,元素必须有一个开始和一个结束;- 元素的命名应该避免'-', '.' ,':'等符合。是message的子元素,是的兄弟(姐妹)元素;

2023-06-19 09:19:07 211

原创 qt creator添加build步骤删除某个文件

参考:https://blog.csdn.net/weixin_44436546/article/details/113587115。

2023-05-10 19:30:13 933 1

原创 获取QTableWidget中某个单元格的坐标

请注意,单元格的坐标是相对于QTableWidget的左上角的。如果您需要使用全局坐标,请使用QTableWidget的mapToGlobal()方法将单元格的坐标转换为全局坐标。其中,tableWidget是您的QTableWidget对象,item是获取的QTableWidgetItem对象,rect是单元格的矩形区域,x和y是该单元格的坐标。要获取QTableWidget中某个单元格的坐标,您可以使用QTableWidget的item()方法来获取该单元格的QTableWidgetItem对象,

2023-04-06 09:03:59 1456

原创 QSqlError(“5“, “Unable to fetch row“, “database is locked“)问题解决

多线程同时写数据库;多线程写数据库,当有事务产生时就会出现该问题;原因:当前上锁逻辑是对数据库API上锁,即开启事务时上锁-事务开启处理完后解锁;插入数据上锁-数据插入执行完解锁;提交事务上锁-提交逻辑处理完解锁;事务处理过程有两次解锁都可能被其它线程去执行写入数据库,所以导致问题出现。Begin tran付出的代价是在提交之前,所有SQL语句锁住的资源都不能释放,直到commit掉。可见,如果Begin tran套住的SQL语句太多,那数据库的性能就糟糕了。

2023-03-21 09:58:08 920 1

原创 QCustomPlot滚轮缩放事件处理逻辑

【代码】QCustomPlot滚轮缩放事件处理逻辑。

2023-03-13 11:51:02 1441

原创 qt控件增加渐变色效果

在qt creator设计师界面设置样式中可以添加渐变,里面有预设的15种效果可参考。

2023-03-09 09:49:18 1680

原创 使用std::sort自定义比较条件

参考:https://blog.csdn.net/jiangdong2007/article/details/81008279。:比较接口函数需要用静态的,即可以是类外定义的函数,也可以是类里的静态成员函数;

2023-02-24 09:28:58 267

原创 qt获取事件过滤器的当前鼠标坐标

【代码】获取事件过滤器的当前鼠标坐标。

2023-02-23 09:08:49 515

原创 qt定位sqlite最后一条记录,计算表格总行数

/这行应该是建立数据库连接 QSqlQuery query(db);该方法随着数据量增加会耗时会越来越多。不推荐使用。//这行应该是建立数据库连接 QSqlQuery query(db);");

2023-02-14 09:46:18 1742 1

原创 vscode的使用经验总结

在编辑区,用快捷键点击不同的行,会在对起止行中所有的行做相同的操作,插入操作光标。这种模式下不仅可以选择竖列,同时还可以非常灵活的在多个地方插入光标。Ctrl+光标点击 选择多个编辑位点。Alt+Shift 竖列选择。Shift+Ctrl 竖列选择。正则表达式选择行首行尾。

2023-01-13 09:26:06 4200

原创 ubuntu下打包qt程序

参考:https://blog.csdn.net/qq_39072246/article/details/125254270。(暂未测试)这里记录下手动打包步骤,参考:https://blog.csdn.net/m0_47166254/article/details/125322365。这个更详细,参考:https://blog.csdn.net/zyhse/article/details/106381937/问题:用Linuxdeployqt工具打包的qt程序会缺少qml的库文件。注意分号是一定要的。

2022-12-26 11:26:38 2974

原创 QDialog窗口弹出时,软键盘不能使用问题解决

Dialog 窗口在调用exec前,先调用setWindowModality(Qt::WindowModal)这一句话;如果窗口变成非模态,就在该窗口的构造函数调用setWindowFlags(Qt::Dialog);

2022-12-13 21:46:22 420

原创 vmware-ubuntu使用问题记录

或者将/etc/NetworkManager/NetworkManager.conf文件中managed = false 改为 managed = true再重启网络;解决方法:先输入密码点一下登录,再按ctrl+alt+f2就可以进入命令行,再按ctrl+alt+f1就切换回图像界面;然后重新打开网络:sudo service network-manager start;原因:ubuntu没装ftp服务,或者没打开相关使能。问题:无网络图标,网络连不上。方案一,简单直接,效果明显。解决方法:重装系统;

2022-11-28 09:49:42 1378

原创 gdb core dump使用简介

这个命令只对当前有效,重启后就失效。

2022-11-27 10:54:33 1808

原创 QT中sqlite的使用

,括号里面的字符串是SQLite的命令语句,通过该函数几乎可以运行SQLite的所有命令。使用名称占位符插入记录,这样就可以使用变量,可以同时插入多条记录。int size():获取当前连接下,正在查询的表格的记录数,并不是所有数据库都支。at():返回当前跟踪的表格的索引index,类似于数组的下标。3. 创建多个连接,一个数据库可以创建多个连接,当然一个连接也可以创建多个表格。):获取当前索引下记录中某个字段的值,输入参数表示几号字段。不一样,字段的值都是自己输入到表格,字段名也可改为不叫id。

2022-11-19 10:36:23 4323

原创 Ubuntu下qt编译问题

linux下安装qt不会关联安装编译器,如果装Linux系统时没安装gcc或g++则会提示缺少编译器。提示缺少编译器,kit: Desktop Qt 5.12.12 GCC 64bit。下面两个步骤暂时未知是否必需,只是刚好做了。打开示例工程,构建后提示如下错误。下面两个步骤是必需的。

2022-11-16 10:24:25 1413 1

原创 imx6ull烧写系统固件

参考《【正点原子】I.MX6U 开发板文件拷贝及固件更新参考手册V1.2.pdf》-第二章I.MX6U更新固件。

2022-11-02 13:46:05 1156

原创 imx6ull-arm开发板和电脑网线直连通信

根据最后结果,该问题的根本原因是网线没接对开发板的网口。而确认linux驱动中的eth0和eth1对应的硬件网口方法是:使用ifconfig eth0 up/down命令开关一个网口,对应网口的led会有反应。

2022-10-28 20:18:28 2759

原创 步进电机积累

细分驱动器是通过控制电机的相电流,让电机保持在某一个位置,实际上如果电机不在一个完整的步距角位置时,关电,电机会移到一个步距角的平衡位置。细分数:驱动器将一个步距角细分后的值;如:2细分,则一个脉冲就走步距角/2的角度值;步距角:一个脉冲对应电机运动的角度,常用的有1.8°,0.9°;1. 步进电机基础参数。2. 细分的控制原理。

2022-10-25 10:38:02 267

原创 c文件操作接口

【代码】c文件操作接口。

2022-10-20 10:56:25 185

原创 PID控制理论

积分饱和就是,积分项数值一直朝一个方向累加(一直减小或一直增大)。导致积分项的值非常大或非常小。下次改变目标值后,由于积分项绝对值太大,导致控制器调整输出的速度变慢。PID参数整定绝对是PID最核心的内容了。笔者用的最多的就是试凑法,其它方法笔者也不懂。增量PID用的比较少,所以调试就不熟练,虽然可能对积分饱和有改善但会引入其它问题。当pid计算得到的值大于系统输出值时,就将积分项减去多余的值。将基础代码段中的err_sum限制在一定的取值范围内。......

2022-08-13 14:42:36 596

原创 bootloader的原理分析

1.1.2 定分区 bootloader分区:boot程序存储区,通常0x8000000开始 数据存储取:标志位等固件基本信息存储区,通常在boot分区和app分区中间; app分区:app程序存储区,前面两个分区留足空间后,剩下的即可定义为app区;.........

2022-07-17 13:03:55 1960

原创 can总线仲裁

如图,单元1和单元2同时开始向总线发送数据,开始部分他们的数据格式是一样的,故无法区分优先级,直到T时刻,单元1输出隐性电平,而单元2输出显性电平,此时单元1仲裁失利,立刻转入接收状态工作,不再与单元2竞争,而单元2则顺利获得总线使用权,继续发送自己的数据。这就实现了仲裁,让连续发送显性电平多的单元获得总线使用权。...

2022-06-05 00:19:46 864

原创 stm32-can简介

推荐阅读:【stm32f407】CAN总线_Wireless_Link的博客-CSDN博客 根据图中信息,tPCLK = 1/APB1_CLK;所以can波特率的计算公式如下:CAN_Baudrate = 1/(tq + tBS1 + tBS2) = 1/(tq*(1 + CAN_BS1 + CAN_BS2))CAN_Baudrate = APB1_CLK / CAN_Prescaler / (1 + CAN_BS1 + CAN_BS2)参考:STM32中CAN波特率的计算_Nan_Key的博客-CS

2022-06-04 11:36:51 2311

原创 STM32 串口DMA使用示例

STM32 DMA数据流向的三种模式外设到内存(Peripheral-to-memory)当DMA_SxNDTR寄存器等于0时,DMA传输会停止。此时需要软件清0寄存器DMA_SxCR中的EN位。在循环模式则不会停止。内存到外设(Memory-to-peripheral)内存到内存(Memory-to-memory)在stm32f4中由DMA_SxCR寄存器的DIR[1:0]决定数据传输的方向;循环模式使用了循环模式后,就算DMA产生传输完成标志,不清除这个标志,DMA也能正

2022-05-29 15:30:51 2854

原创 STM32F4系列定时器简介

STM32F4系列参考《stm32f4参考手册》STM32F4时钟系统系统时钟最大值180MHz,systick的时钟源是系统时钟HCLK/8或HCLK;systick默认是使用HCLK(最大168MHz)。根据正点原子《STM32F429开发指南-HAL库版本v1.1》第四章第三节(4.3)中描述,HCLK最大值是168MHz;在使用HAL初始化时钟时,需要手动配置系统时钟,具体可以翻阅源文档。STM32F4定时器TIM1,TIM8是高级定时器,时钟源是APB2,90*2=180MHz

2022-05-29 15:27:32 2040

原创 pylink使用知识总结

pylink使用知识总结教程参考安装命令:pip install pylink-square1 配套开发平台选择参考:https://blog.csdn.net/xuezhimeng2010/article/details/78771030pylink目前不支持v4.66版本的jflash,V6.x的没问题,V5.x的没测试。- python2.7 python 3.7 (32bit)- JLinkARM.DLL v6.10j- pylink 0.2.0- jlink-ob v7.0

2022-05-29 15:24:45 3133

原创 sqlite使用简介

1. sqlite 简介参考:https://docs.python.org/3.7/library/sqlite3.html?highlight=sqlite#module-sqlite3参考:https://www.runoob.com/sqlite/sqlite-python.html数据库的基本操作是:建表,写入,查找,读出,删除;1.1 命令行下操作sqlite1.1.1 命令行下打开数据库文件a. 首先将sqlite3加到环境变量;b. 在数据库文件路径下,打开命令行;输入sq

2022-05-29 15:23:22 905

原创 c语言各类型数据混合运算

windows下测试结果#include <stdio.h>#include <stdint.h>void main(void){ printf("##### calculate_unsigned_signed #####\n"); int8_t _int8_1 = -1; uint8_t _uint8_1 = -1; uint8_t _uint8_2 = 1; int16_t int16_1 = -1; int16_t int16_2 = 2;

2022-05-28 21:02:39 2258

原创 keil_mdk调试方法

利用.ini文件更改进入调试模式时的程序运行的起始地址FUNC void Setup(void){ SP = _RDWORD(0x8040000); PC = _RDWORD(0x8040000+4); _WDWORD(0xE000ED08,0x8040000);}LOAD .\Objects\microtome.axf INCREMENTALSetup();FUNC void hello_world(void){ printf("hello_world\

2022-05-28 20:55:25 215

原创 usb通讯——读《圈圈教你玩usb》

1. 关键概念1.1 IN和OUT这两个参数的主对象都是主机。IN和OUT都是主机发起的(通过令牌包)。 IN:主从IN缓冲区接收数据,从机将发送数据放到IN缓冲区; OUT:主机将数据放到OUT缓冲区,从机在OUT缓冲区取数据;1.2 NRZI编码NRZI:No Return Zero-Inverse 非归零反相编码 编码后电平只有正负电平之分,没有零电平,是不归零编码 在传输中,同步头SYNC为00 01H,15个翻转信号。 但是当传输连续的逻辑1位时,NRZ-I编码后,将保持上一次翻转

2022-05-22 23:35:01 3646 5

原创 linux常用文件操作IO(open-write-read)

linux常用文件操作IOopen()write()read()1. open()系统调用open()调用了sys_open()/** * @brief open()函数原型之一 * @param[*pathname] 指向文件名字符串 * @param[flags] 系统调用的标志 * @param[mode] 请求传输的数据长度 * @retval 打开成功返回文件描述符,失败返回-1; */int fd = open(const char *pathname,int f

2022-05-22 15:07:00 495

原创 gd32-adc的简介

规则组和注入组规则组的转换相当于程序的正常运行;注入组的转换相当于一个中断处理函数;所以注入组的转换可以优先于规则组的转换;单个adc规则组最多有16个通道;单个adc注入组最多4个通道;规则组用DMA的方式会好些;......

2022-04-18 00:15:51 1881

原创 直流无刷电机驱动芯片DRV8306使用

1 DRV8306参考DRV8306数据手册7.3.3pulse-by-pulse节的描述。之前不够是因为DRV8306的Rsense设置过大(0.39R),根据VLIMIT=0.25v,反推过来电机母线的保护电流就是0.25/0.39=0.64A。根据放大倍数2.7,过流时,单片机ADC采样脚的电压是0.25*2.7=0.675v;对应adc值是0.675/3.3*4095=837。ENABLE引脚:低电平时会进入低功耗休眠模式。15~40us的低脉冲可以重置异常。FGOUT:开漏输出,一个电角

2022-04-17 23:49:19 1572

原创 pt-thread的使用

1. pt-thread使用官网:http://dunkels.com/adam/pt/index.html1.1 使用示例ptthread 有两种运行任务的方式,一种是switch,另一种是goto。这里使用的是switch,在lc.h文件中包含相应头文件即可。#include “lc-switch.h”//PT_BEGIN(p);{ char PT_YIELD_FLAG = 1; //LC_RESUME((pt)->lc) switch(p->lc)

2022-04-17 23:48:23 346

原创 c语言空指针在stm32中的表现

访问空指针uint32_t * ptr = NULL;*ptr = 5;空指针指向0地址,0地址在cotex-m系列单片机中(由于BOOT配置方式),多数被映射到0x8000000,即代码起始地址。有疑问根据权威指南描述,访问这部分地址是允许的,且不会造成异常。根据数据手册描述,如果没配置好flash的操作,就直接写这部分地址,就会报PGPERR和PGSERR错误。调试结果也是这样,目前来看这两个异常不会触发hardfault之类的异常,但是如果没清除这些错误标志又操作flash,在stm32中会

2022-04-17 23:46:50 742

原创 BLDC基础概念

1. BLDC研究驱动电路:6个功率管控制3相(uvw),也叫ABC三相;由于电机的abc三相并无明显差异,所以不同厂家可能会有不同定义。就可能导致线序对不上原理图。进而导致无法驱动。霍尔传感器:ABC三相,具体怎么接还在研究中。极对数:越少转速越快,越多扭矩越大。6步方波驱动方式:霍尔反馈值:101,001,011,010,110,100;正转MOS管状态:A-C+,A-B+,B+C-,A+C-,A+B-,B-C+反转MOS管状态:B+C-,A+C-,A+B-,B-C+,A-C+,A-B+

2022-04-17 23:43:43 2542

原创 RS232_RS422_RS485简介

参考串口通讯RS422、RS485与RS232详解 - 电子说 - 电子发烧友网RS232C通讯数据线是2线(RX,TX),支持全双工通讯 电平值,高电平:-3v ~ -15v;低电平:+3v ~ +15v。所以和单片机的通信通常需要用232转ttl电平的芯片。 接收,发送,地;三线形成工地的传输模式,容易产生共模干扰; 最大传输距离50英尺,实际上50米左右; 由于电气特性限制,只能是两个设备之间相连,所以只能是点对点双向通信;RS422通讯数据4线方式(TX+,TX-,RX+,R.

2022-04-09 13:32:20 10361

空空如也

libmodbus-tcp

2023-03-02

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

TA关注的人

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