自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 QTableWidget 调用 removeRow 报 segmentation fault

所以,如果当前选中行 QTableWidget::currentRow() == count - 2,此时删除当前选中行,在 itemSelectionChanged 信号连接的槽中,当前选中行就变成了 QTableWidget::currentRow() == count - 1,于此同时,QTableWidget::rowCount() 变成了 count - 1。若此时访问 QTableWidget::item(QTableWidget::currentRow(),0),必报段错误。

2023-07-28 09:08:01 532

原创 QML使用QCustomPlot

在 QtQuick 中使用 QCustomPlot 的方法

2023-02-16 14:44:10 1633 3

原创 Linux驱动开发——正点原子IMX6ULL核心板ADS1256驱动开发

IMX6ULL 芯片,Linux驱动开发,ads1256 8通道高精度ADC,SPI总线。

2022-08-02 16:16:00 1272

原创 迅为嵌入式Linux学习笔记5——进程间通信

无名管道只能实现有亲缘关系的进程之间的通信,比如父子进程。pipe函数:例程1有名管道有名管道可以实现两个互不相关的进程间通信。mkfifo 函数例程2fifo_read.cfifo_write.c信号通信可以通过命令* " kill -l " *查看系统中有哪些信号。kill函数:raise函数:raise函数等价于kill(getpid(), sig);alarm函数:设置一个时间值,当设置的时间到了就产生一个信号。例程3例程4kill.ctest.c 一秒钟打印一

2022-07-14 14:55:14 316

原创 迅为嵌入式Linux学习笔记6——最简单的字符设备驱动helloworld

驱动分为四个部分:创建一个 helloworld.c文件。完整的一个最简单的Linux内核模块:代码中的陌生元素是linux内核为了字符设备,以实现驱动与内核接口而定义的。Linux对各类设备的驱动都定义了类似的数据结构和函数。Linux 设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程时学习Linux设备驱动的先决条件。编译驱动有两种方式:创建 Makefile 文件,内容如下:注意:设备交叉编译器,输入以下命令:设置环境变量,输入以下命令:然后输入“echo $PATH”

2022-06-29 15:50:50 323

原创 迅为嵌入式Linux学习笔记4——进程

进程指的是正在运行的程序,是操作系统分配资源的最小单位。每个进程都有唯一的标识符,这个标识符就是进程ID,简称pidfork函数头文件:函数原型:返回值:例程1exec函数族在Linux中并没有exec函数,而是有6个以exec开头的函数族,下面列举了exec函数族的6个函数成员的函数原型在Linux中使用exec函数族主要有以下两种情况:ps和kill命令ps命令:kill命令:父进程结束以后,子进程还未结束,这个子进程就叫做孤儿进程。孤儿进程会被init进程(PID号为1)领养,i

2022-06-01 14:55:31 147

原创 迅为嵌入式Linux学习笔记3——库的制作

库是一种可执行的二进制文件,是编译好的代码。使用库可以提高开发效率。Linux下库分为两种,静态库和动态库。静态库的制作步骤编译使用ar命令创建库文件参数说明:知识点:编译参数说明:动态库的制作步骤参数说明:参数说明:如果我们的程序代码用到了库文件里面的函数,我们在编译的时候需要链接库。系统默认会在/lib或者/usr/lib去找库文件。或者在编译的时候我们指定库的路径。在动态库使用时,系统会默认去/lib,/usr/lib目录下去找动态函数库,如果我们使用的库不在里面,就

2022-05-31 22:10:36 133

原创 迅为嵌入式Linux学习笔记2——文件&目录IO

迅为嵌入式Linux学习笔记2——文件&目录IOopen 函数使用函数需要包含三个头文件#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>函数原型int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);当 flags 参数中包含 O_C

2022-05-31 21:28:07 132

原创 迅为嵌入式Linux学习笔记1——框架学习法

迅为嵌入式Linux学习笔记1——框架学习法知识体系C语言数字电路基础(单片机)ARM体系结构硬件设计(ARM接口技术)Linux系统与管理Linux系统开发Linux驱动开发BootLoader(UBOOT)QT和C++Android系统和JAVAUBOOT学习框架入门级了解UBOOT是首先执行的片外程序UBOOT的主要任务是引导Linux内核启动UBOOT生命周期,调用关系UBOOT编译、烧写及UBOOT命令工程师级启动过程简单分析修改读秒时间启动模式

2022-05-31 14:38:24 312

原创 C语言——一个简单的事件处理循环

摘要编写一个简单的事件处理循环,用于单片机裸机编程。考虑到中断函数中不可调用malloc,未采用动态内存分配的形式编写事件链表。eventloop.h#ifndef __EVENTLOOP_H__#define __EVENTLOOP_H__typedef enum { EventTypeNull, EventTypeHardIrp0, EventTypeHardIrp1, EventTypeTimer1, EventTypeTimer2, Eve

2022-01-25 15:27:12 1759

原创 rtthread操作系统libcsv库的使用

rtthread操作系统libcsv库的使用前言开发环境软件包配置csv_initcsv_finicsv_freecsv_parse回调函数 cb1 的参数解释:回调函数 cb2 的参数解释:文件读取解析流程示例文件写入后记前言最近做一个 STM32F4 的项目,需要做本地数据持久化。一开始的策略是,使用数据产生的时间戳作为文件名,保存为json格式的数据文件来进行存储,每个文件大小大概为100字节左右。该方法在数据量小的时候很方便,一次展示30条历史数据,从文件系统读取时几乎感觉不到卡顿。但是当数据量

2021-05-17 18:04:48 1548 13

原创 rt-thread+stm32 使用串口dma空闲中断接收不定长数据

文章目录开发环境一、工程配置二、添加代码并测试三、解决问题开发环境IDE: RT-Thread Studio v2.1.0系统版本:v4.0.2芯片: STM32F407VG一、工程配置工程创建完成后,双击工程目录下的 RT-Thread Setting选择右下角的更多配置勾选使能串口DMA模式,设置缓冲区大小,ctrl+s保存配置后自动生成代码,然后退出配置页面。打开 drivers/board.h ,按图示添加代码,引脚配置根据图示自行修改。二、添加代码并测试新建一对 u

2021-04-20 12:46:07 3394 2

原创 使用stm32cubeide的usb-host-cdc库驱动EC20模块

使用stm32cubeide的usb-host-cdc库驱动EC20模块写在前面开发环境:开始一、使用 cubeide 创建 STM32 Project二、修改代码三、仿真最后写在前面之前已经发布过一篇 “使用stm32cubemx的usb-host-cdc库驱动EC20模块”,但是近期有很多小伙伴私信询问相关问题。今天抽空重新浏览了一下上一篇博客,因为自己想表述的东西太多,写的有点乱。决定重新建立一个空工程,使用最新的 1.26.1 HAL库,按照原文配置方式,删除掉干扰代码,重写一篇博客,希望可以减

2021-04-12 22:29:47 5752 26

原创 stm32f407+rtthread 使用 ec20 ppp拨号

stm32f407+rtthread 使用 ec20 ppp拨号开发环境一、工程创建二、模块添加三、参数配置四、测试开发环境IDE: RT-Thread Studio操作系统: rt-thread-4.0.2芯片型号: STM32F407VG控制台端口: Uart1 (TX: PB6, RX:PB7)EC20端口: Uart2 (TX: PA2, RX: PA3), 电源控制引脚 PA5一、工程创建新建 RT-Thread 项目,点下一步在新窗口中进行项目配置:输入工程名称选择

2021-03-10 15:14:09 5409 8

原创 stm32 cubeide 添加 cryptographic .a .lib 加密库 使用 RSA非对称加密解密

移植过程从st官网下载cryptolib,解压文件,进入目录 .\STM32CubeExpansion_Crypto_V3.1.0\Fw_Crypto\STM32F4\Middlewares\ST注:本文针对F4芯片,其他芯片请参照路径自行更改将目录下的文件夹 STM32_Cryptographic拷贝到需要移植的工程目录下右键项目名称,refresh, 文件已添加进工程内右键项目名称,Properties->C/C++ General->Paths and Symbols, 将新

2020-07-24 09:38:47 3431 4

原创 stm32 cubemx 添加 rt-thread 操作系统 context_gcc.S 编译报错

stm32 cubemx 添加 rt-thread 操作系统 context_gcc.S 编译报错解决方法(eclipse+CDT 或 cubeide)解决方法(eclipse+CDT 或 cubeide)右键点击项目名称->Properties->C/C++ Build->Setting->Tool Settings->MCU GCC Assembler->Miscellaneous->Other flags->Add…在弹出框中输入:-Wa,-mi

2020-06-09 15:14:48 2167 1

原创 使用stm32cubemx的usb-host-cdc库驱动EC20模块

使用stm32cubemx的usb-host-cdc库驱动EC20模块开发环境:实现功能:开始1、使用STM32CubeMX配置工程,生成基础代码2、修改cubemx生成的代码3、 编译下载运行,成功发送at并接收到at指令回复。总结开发环境:开发板:正点原子F407探索者代码生成工具:STM32CubeMX v5.4.0IDE: eclipse + ac6工具链实现功能:单片...

2019-12-19 18:33:03 9951 19

stm32F4-USB-CDC驱动EC20模块

修改stm32HAL库提供的CDC类驱动,以支持EC20通过USB与stm32单片机通讯

2021-06-05

空空如也

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

TA关注的人

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