自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (6)
  • 收藏
  • 关注

原创 memcpy函数

memcpy函数

2022-06-23 10:27:35 709 1

原创 字符串反转

试题:将 welcome to china,反转输出 china to welcome第一步:将所有字符交换位置,变成 anihc ot emoclew第二步:按照空格,再将字符反转,就是 china to welcometest:

2022-06-22 11:05:54 285

转载 ASSERT用法

断言(assert)的用法 | 菜鸟教程 (runoob.com)

2021-09-13 10:03:48 271

原创 常用网站记录

数据手册  1:datasheet 数据手册 datasheet中文网  2: 21ic手册下载中心电子论坛  1:正点原子论坛:正点原子论坛  2:电子发烧友论坛:电子发烧友论坛学习导航网站:  一纳米学习导航网站:一纳米学习导航电子书网站:  书享家:书享家包含各种各类的书籍文档ppt资源网  ppt资源网站:ppt资源网站电影网  电影综合网站:茶杯狐...

2021-07-09 10:52:50 151

原创 stm32使用定时器输出PWM

简介:  STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!这里我们仅利用 TIM3的 CH2 产生一路 PWM 输出。1:定时器产生PWM原理在PWM输出模式下,除了CNT(计数器当前值)、ARR(自动重装载值)之外,还多了一个值CCRx(捕获/比较寄存器值)。当CN

2021-07-02 14:02:03 2581 4

原创 Keil 工程在编译完之后,提示信息Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124

内存分布:一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:linking…Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124After Build - User command #1: fromelf --bin.\bu

2021-06-23 11:07:39 765

原创 qt串口通信,实现串口热插拔

使用定时器的方式,实时更新串口信息 timer = new QTimer; //定时扫描和更新串口 connect(timer,&QTimer::timeout,this,&MainWindow::showValidPort);//实时更新端口号 timer->start(1000); //每1000ms定时检测串口状态 //更新并检测串口函数实现void MainWindow::showValidPort(){ QStringList ne

2021-06-21 16:11:29 1929 1

原创 基于Qt的串口通信学习记录

一、串口类简介当前的QtSerialPort模块中提供了两个C++类,分别是QSerialPort 和QSerialPortInfo。QSerialPort 类提供了操作串口的各种接口。QSerialPortInfo 是一个辅助类,可以提供计算机中可用串口的各种信息。下面以一个简单的实例说明:  (1):在.pro工程目录中,添加Qt的串口类库,.pro文件跟linux下的Makefile一样作用功能。需要在pro文件中增加如下内容:QT += serialport  (2):查找win

2021-06-21 15:55:39 520

原创 QT中常见QByteArray,QString,char,10进制,16进制之间转换

  ​QString是专门用来处理字符串的,除了能处理ASCII编码字符,还包括各国语言的编码,默认情况下QString会把所有数据当做utf-8编码来处理。QByteArray只是单纯用来处理数据的,除了能处理ASCII编码字符,其它复杂的编码不能处理,直接以字节流的方式来对待1:QByteArray转QString方法一:QByteArray array;QString str = QString(array); >>不能显示中文需要显示中文的时候:QString str =

2021-06-18 15:04:11 11172 3

原创 QByteArray常见使用方式

1:访问与赋值  访问QByteArray主要有4中方式,分别为[]、at()、data[]和constData[]。其中[]和data[]为可读可写,at()和constData[]仅为可读。如果仅是读,则通过at()和constData[]访问速度最快,因可避免复制处理。示例如下:2:在末尾追加字节数据 QByteArray x("free"); QByteArray y("dom"); x.append(y); >>>>>>>输出 x =

2021-06-17 15:13:53 20279

原创 Qt中Qstring类型常见用法

1:10进制数据转16进制字符串 int x =10; QString xVal = QString::number(x, 16);//得到十六进制数(字符串方式表达)

2021-06-17 11:31:34 1129

原创 学习笔记---开发板直连电脑网络环境搭建

适用场景:开发板与笔记本电脑直连,笔记本使用WiFi上网。开发板ping通windows,ping通ubuntu虚拟机。第一步:打开虚拟机ubuntu设置,新增一个网络适配器2,选择NAT模式第二步:打开虚拟网络编辑器,把VMnet0网络设置成桥接模式,网卡选择的是有线网卡,点击确定应用。第三步:打开虚拟机的设置->网络设置,此时里面会有两个net网络,就是网络适配器1和网络适配器2。一个是用来跟开发板,windows之间互联,挂载网络驱动,内核,或者文件系统的。一个是用来虚拟机上网的。前面

2021-04-29 17:26:33 471

原创 学习笔记---u-boot NFS下载文件报错:Loading: *** ERROR: File lookup fail解决方法

导致此错误得原因是:  uboot中使用得NFS版本为V2版本,而ubuntu中的NFS版本为V3,V4及以上版本,从而导致uboot不能再NFS服务器中找到文件。解决办法为:让buntu中得NFS兼容V2。修改/etc/default/nfs-kernel-server 文件。打开文件:sudo vim /etc/default/nfs-kernel-server (注意一定要sudo或者root权限),修改成如下内容:# Number of servers to start upRPCNFSD

2021-04-29 16:28:08 407

原创 学习笔记---启动nfs网络挂载文件系统

一,在 Ubuntu 终端执行以下指令安装 NFSsudo apt-get install nfs-kernel-server二,新建 NFS 共享目录,并给予 NFS 目录可读可写可执行权限sudo mkdir /home/dxh/linux/nfssudo chmod 777 /home/dxh/linux/nfs/三,配置 NFS 服务执行以下指令打开 etc/exports 文件sudo vi /etc/exports进入 etc/exports 文件,在最后添加如下内容:/ho

2021-04-29 16:19:33 141

原创 学习笔记---tftp网络挂在kernel和设备树文件

一、安装xinetdsudo apt-get install xinetd二,在ubuntu中新建tftp目录,给tftp目录赋予权限。mkdir -p /home/dxh/linux/tftp //目录自己随意sudo chmod 777 tftfp三,安装tftp-hpa和tftpd-hpasudo apt-get install tftp-hpa tftpd-hpa四,打开配置文件进行修改sudo vi /etc/default/tftpd-hpa修改里面的参数TFTP_D

2021-04-29 14:16:26 110

原创 学习笔记---linux开启ftp,nfs,ssh服务

开启ftp服务sudo apt-get install vsftpdsudo vi /etc/vsftpd.conf打开以后 vsftpd.conf 文件以后找到如下两行:local_enable=YESwrite_enable=YESsudo /etc/init.d/vsftpd restart开启nfs服务sudo apt-get install nfs-kernel-server rpcbind如果出错,执行sudo apt-get update后再次输入命令。在ubun

2021-04-17 11:52:48 162

原创 学习笔记---ubuntn16.04换国内源

第一步:  sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 备份原来的sorce文件第二步:  sudo gedit /etc/apt/sources.list 修改sources.list文件第三步:添加阿里、中科大镜像源# 中科大镜像源deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiversedeb-src https:/

2021-04-16 14:22:56 178

原创 rt_thread启动流程

启动流程:1:执行$sub$$main函数,此函数为main扩展函数,就相当于是在main函数里面进行操作,只是他是在执行main函数之前执行。  在components.c文件中有定义:/* $Sub$$main 函 数 */int $Sub$$main(void) {rtthread_startup();return 0;}在这里 $Sub$$main 函数调用了 rtthread_startup() 函数,其中rtthread_startup() 函数的代码如下所示:int rtt

2021-03-17 14:42:05 433

原创 qt使用windeployqt 自带软件进行程序打包

软件打包步骤:1:使用release版本运行,注意保存的地址2:将生成好的xxx.exe,在release目录中,单独复制出来,放在一个单独的文件夹里面3:使用winds 命令,cd 进入xxx.exe的文件夹中4:输入命令: windeployqt xxx.exe 即可。5:打包后exe所需要的的链接文件dll会自动包含在文件夹里面...

2021-02-19 10:48:51 165

原创 stm32cubemx创建的工程,jlink调试时找不到jlink,需要按住复位键才能找到并下载代码的原因?

在cubemx配置过程中,sys配置时需要选择,我这里选择的是:trace Asy…这个。默认的是No debug

2021-01-30 16:33:55 1007 2

原创 第一次基于stm32cubemx hal库的spi通信调试心得

spi通信失败问题点:  1: cs引脚配置成普通pin_out,软件控制拉高拉低  2: spi读取数据的个数和发送数据的个数是相同的,就是你只有发送出去一个数据,才能回来一个数据,发送n个数据,才能回来n个数据  3:spi读取地址的读写位在最高位,读取时,需要或0x80...

2021-01-20 09:05:18 1735 1

原创 学习笔记---在虚拟机上更改profile文件后,打不开虚拟机,一直在登陆密码界面?

在虚拟机上更改profile文件后,打不开虚拟机,一直在登陆密码界面?问题点:在修改path环境变量时,出错(可能是书写出错,或者有间隔等等问题),会导致内核加载时失败。解决方案步骤:  (1): 使用alt +ctrl +f1(我是ubuntu16.04,不同的版本可能不太一样)进入命令模式,  (2):进入后,可能还是无法使用vi,sudo等命令,都会提示错误信息,找不到这些命令,在命令行输入 : export PATH=/usr/bin/:$PATH  (3):然后再输入,sudo vi /

2020-12-17 14:24:44 724

原创 如何在xilinx sdk中捕获调试某段代码需要运行的时间

程序代码:#include "xtime_l.h" 包含这个头文件int main() { XTime tEnd, tbegin; u32 tused; XTime_GetTime(&tbegin); *******test_code***************** *******test_code***************** *******test_code***************** XTime_GetTime(&tEnd

2020-10-15 09:42:32 3033 1

原创 stm32之定时器Timer4测量代码运行时间

前言:  stm32里面有8个定时器,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer).他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。计算定时器的周期:void TIM4_Int_Init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; RC

2020-09-09 11:57:22 4083 1

原创 ZYNQ——PS端IIC设备接口使用

前言:  在zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。一:配置vavido  创建block design,勾选iic设备,可以看到iic的引脚可以进行这种分配,对照原理图,勾选对应的引脚即可。二:sdk开发创建好工程后,在sdk中对iic设备进行初始化,和对iic设备的读写操作。首先是对iic设备进行初始化,初始化iic设备的基地址,设备id,iic时钟频率等信息。u32 XpsIic_Initia

2020-09-09 11:07:03 5155 2

原创 如何编写MDK中Configration wizard配置文件

前言:  在写程序时经常会进行一些配置,比如开启关闭某些功能、修改一些常量等,会反复去修改配置文件。实际上MKD可以将其变为配置界面,这样在修改时更加直观、方便。只需要根据configuration wizard的格式来编写我们的配置文件即可。类似于上图这样,可以直接修改后面的值或者勾选使能匡,就能实现对函数中的参数或者宏定义进行修改,这样做的目的就是比较直观,简单明了,省的去看代码里面的逻辑关系。  MDK在编译时 是怎们知道这是一个配置文件的呢?就需要用到文件的格式,开头和结尾。// <&

2020-08-24 17:18:27 571

原创 Qt之Qfile读取文件操作

文件系统:  文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5):   QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口;   QFileDevice:Qt5新增加的类,提供了有关文件操作的通用实现。   QFlie:访问本地文件或者嵌入资源;   QTemporaryFile:创建和访问本

2020-08-14 13:53:16 27810 1

原创 Qt中打包程序运行时出现:0xc000007b错误

应用程序无法正常启动解决方案错误原因:其根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有DLL,提示完全一样  也就是你找到的dll文件不对,虽然名字一样的。我们需要到qt安装目录下去寻找。否则找出来的dll就是错误的,跟qt不对应,就会出现程序错误现象。例子:我的安装目录为:E:\SoftWareInstall\QT\qt5.9.5\Tools\mingw530_32\i686-w64-mingw32在这个目录下查找:我在E盘里查找:因为我电脑里安装了vavido,所以可

2020-08-12 10:46:09 1725

原创 UCOSIII——信号量与互斥信号量中的常用Api解析

1:信号量的创建void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name, OS_SEM_CTR cnt,

2020-08-07 16:32:44 267

原创 UCOSIII——信号量和互斥信号量详解

前言:  在ucosiii中有可能会有多个任务访问共享资源,同时对这个共享资源操作时会出错,因此信号量最早是用来控制任务存取共享资源。现在信号量被用来实现任务之间的同步和Isr之间的同步。在可剥夺的内核中,当任务独占式使用共享资源时就会出现低优先级任务先于高优先任务运行的现象,这个现象称之为优先级翻转现象。为了解决这个问题,引出了互斥信号量的概念。1:信号量  信号量是一种上锁机制,该任务必须获得相应的钥匙才能进入,直至代码执行结束,释放钥匙,程序才退出。信号量分两种,一种是二进制信号量,一种是计数型

2020-08-07 16:15:41 2107

原创 UCOSIII——常用任务函数API解析

前言:UCOSIII是一个多任务系统,创建任务就是将任务控制块,任务堆栈,任务代码 等联系在一起,并初始化任务块中的一些字段。对于任务的创建,删除,挂起和恢复等基本常用函数阐述1:创建任务函数void OSTaskCreate ( OS_TCB *p_tcb, CPU_CHAR *p_name, OS_TASK_PTR p_task,

2020-08-06 15:15:21 504

原创 ucosiii系统中的任务管理

前言:  多任务操作系统最重要的就是对任务进行管理,包括任务的创建,挂起,删除和调度等,因此对于ucosiii操作系统中任务管理的理解就显得尤为重要了。  分几个部分介绍:    1:任务状态    2:任务控制块    3:任务堆栈    4:任务就绪表    5:任务调度和切换1:任务状态  UCOSIII支持的是单核cpu,不支持多核cpu,所以在某一时刻就只有一个任务会获得cpu的使用权,其他任务就会进入其他状态。每个任务有5种状态:睡眠状态,就绪状态,运行状态,等待状态和中断服务

2020-08-06 13:52:28 599

原创 stm32之adc多路采集+dma传输

STM32 ADC简介:  12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。对于小容量、中容量和大容量产品.ADC主要特征:  ● 12位分辨率 ● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断 

2020-08-05 17:14:58 22380 22

原创 QT中的UDP通信

前言:  前一章我们我们介绍了tcp通信,通过对tcp通信流程熟悉,再来看udp就显得简单多了。使用Qt提供的QUdpSocket进行UDP通信。在UDP方式下,客户端并不与服务器建立连接,它只负责调用发送函数向服务器发送数据。类似的服务器也不从客户端接收连接,只负责调用接收函数,等待来自客户端的数据的到达。在UDP通信中,服务器端和客户端的概念已经显得有些淡化,两部分做的工作都大致相同:   创建套接字   绑定套接字    在UDP中如果需要接收数据则需要对套接字进行绑定,只发送数据则不

2020-08-04 15:37:02 4675

原创 QT中的TCP/IP通信

在Qt中实现TCP/IP  服务器端通信流程:    1:创建套接字    2:将套接字设置为监听模式    3:等待并接受客户端请求    可以通过QTcpServer提供的void newConnection()信号来检测是否有连接请求,如果有可以在对应的槽函数中调用nextPendingConnection函数获取到客户端的Socket信息(返回值为QTcpSocket*类型指针),通过此套接字与客户端之间进行通信。    4:接收或者向客户端发送数据    5:接收数据:使用read(

2020-08-03 16:58:16 4696 3

原创 QT之qsrand()生成随机数

1:前言QT生成随机数和C语言差距不大,C语言用srand()和rand(),QT是用Qsrand()和qrand(); 生成随机数主要用到了函数qsrand和qrand,这两个函数在#include 中,qsrand用来设置一个种子,该种子为qrand生成随机数的起始值。比如说qsrand(10),设置10为种子,那么qrand生成的随机数就在[10,32767]之间。而如果在qrand()前没有调用过qsrand(),那么qrand()就会自动调用qsrand(1),即系统默认将1作为随机数的起始值

2020-08-03 09:54:13 7024

原创 qt中在函数后面声明const的用法

void function() const{}通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误// test1107.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class test{ int num;public: test(){

2020-07-31 09:25:55 3733 1

原创 QChart之QPieSeries绘制饼状图

前言:绘制饼图需要用到3个类• QPieSeries: 用于创建有由一系列数据组成的饼图数据• QChart: 图表界面,用来管理图表内容,颜色,大小等• QChartView:负责显示QChartmywidget.h:#ifndef MYWIDGET_H#define MYWIDGET_H#include <QWidget>#include <QtCharts/QChartGlobal>#include <QtCharts/QChart&gt

2020-07-30 10:23:51 895

原创 QChart之QBarSeries绘制条形图

前言  QAbstractSeries 继承自 QObject,是所有 Qt Chart series 的基类。通常使用其特定的继承类而非基类,例如:柱状图、面积图、箱形图、饼图、线性图、曲线图、散点图。  绘制条形图需要用到3个类• QBarSeries: 用于创建有由一系列数据组成• QChart: 图表界面,用来管理图表内容,颜色,大小等• QChartView: 负责显示QChartmywidget.h :#ifndef MYWIDGET_H#define MYWI

2020-07-30 10:05:40 3118

原创 QChart之QSplineSeries绘制曲线图

绘制曲线图需要用到3个类• QSplineSeries: 用于创建有由一系列数据组成的曲线.类似的还有        QPieSeries(饼图数据). QLineSeries(折线数据)• QChart: 图表界面,用来管理图表内容,颜色,大小等• QChartView: 负责显示QChart使用准备:  1:在pro中, 添加QT+= chartsQT += core gui charts  2:然后在界面头文件中添加头文件并声明命名空间,添 加:QT_CHARTS_USE_NA

2020-07-28 17:32:02 5742 2

rt-thread-3.1.2.zip

rt-threadv3.1.2源码

2021-07-01

seriport.zip

串口通信16进制发送接收,基于serialport 的实时显示串口接收数据,基于qcustomplot实时动态显示

2021-06-18

08_QTcp.rar

qt中的tcp通信实现,实现客户端和服务器端双向传输。

2020-08-03

UCOSIII 3.03.rar

ucosiii源码

2020-07-21

AStyle_3.1.rar

keil中常用的代码格式化工具,里面包含Astyle的源码,并生成有exe文件,可直接使用,希望对你有用

2020-07-20

T_Gamma_LCM_TEST_V01.rar

这是自己项目里的代码,里面包含有usb传输,中断,串口在线升级,lcd等功能,实测有效,拿出来仅供参考,自行领悟。

2020-07-15

空空如也

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

TA关注的人

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