自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于EMQX和到数据库流转学习记录

基于EMQX和到数据库流转学习记录一:SQL安装1.1菜鸟论坛1.2Linux安装MySQL5.7二:EMQX 规则引擎安装参照以下网址即可三:EMQ X规则引擎存储消息到MySQL数据库1:网址如下一:SQL安装SQL安装此处选择5.7.2版本,不要选择最新版本,其中有很多bug。安装下载主要参考了两份网址1.1菜鸟论坛https://www.runoob.com/mysql/mysql-install.html1.2Linux安装MySQL5.7https://www.cnblogs.co

2021-01-19 14:42:54 9

原创 针对正点原子STM32战舰视频第76讲SD卡写入数据乱码纠正

针对正点原子STM32战舰视频第76讲SD卡写入数据乱码纠正针对正点原子在视频中进行了FATFS视频的调整,其中补充以下的代码,纠正乱码问题变量声明部分:FIL fil;FRESULT res;UINT bww;char buf[100];主程序中添加以下代码 res=f_open (&fil,"0:/message.txt", FA_OPEN_ALWAYS|FA_WRITE); f_write (&fil, "alientek test", 50, &b

2020-09-04 16:09:46 127

原创 目标功能:实现遥控步进电机完成位置控制

目标功能:实现遥控步进电机完成位置控制 输入信号:RC脉冲信号,即摇杆在从低到高产生的等频率,脉冲高电平时间为1100us到1900us之间 利用此信号完成电机的位置偏转,说白了就是电机,忽略电机归位的功能。个人想法与思路:STM32捕获能得到高电平的时间,想利用增量作为脉冲个数的调试。 需要两个进程,或者两个定时器中断 (1)进程1 OR 中断 1 a[0] = get.va...

2018-07-12 10:32:36 1540

原创 单片机遥控伺服电机发现的问题与解决方法

实现功能:time4cap完成遥控RC信号采集,采集4路信号 对信号进行处理,利用函数关系进行速度匹配 速度控制实现电机控制,速度控制采用-10到10V的模拟量输出 单片机控制速度模式采用CRC MODBUS协议 出现问题: 在主函数中能够解析出来RC电压,但在主函数中无法发送出去,即电压无显示 解决方案:...

2018-05-30 14:26:14 430 1

原创 Qt5模板库、工具类读书笔记

【2.1字符串类】 C++提供了两种字符串:(1)C语言风格 “\0”字符结尾的字符数组 (2)字符串类QString 功能更强大,16位Unicode值 操作字符串: 常用这种:方便的字符串组合方式,使用QString::arg()函数,推荐就使用这种方法: 例如:QString Str;St...

2018-03-28 16:46:46 291

原创 NMEA0183的串口通信协议界面与问题(MSVC2015+QT5.8版本的)

首先是基于串口助手写的文章,移步此篇,是在这个基础上写的: 基于QT的串口通信助手(MSVC2015+QT5.8) http://blog.csdn.net/qq_34071268/article/details/79540823 【目标】 能够将GPS采集到的数据通过NMEA协议传输到QT上位机,并实时显示到图片上 参考博客 (1)基于Qt-读取GPS数据(主要参考的gpsPrase...

2018-03-13 16:40:23 918 1

原创 基于QT的串口通信助手(MSVC2015+QT5.8)

好久没写CSDN,一直在刚QT,可惜坑有点多,一点点整理吧,否则自己都忘光了。自己借鉴的百度文库上的一个串口助手,然后再其基础上不断改进的。 https://wenku.baidu.com/view/7dd7a283d0d233d4b14e694b.html?from=search常用的串口文件: qextserialbase.h qextserial.cpp ...

2018-03-13 15:40:48 1404

转载 QString的用法

#include "mainwindow.h"#include #include #include #include #pragma execution_character_set("utf-8")int main(int argc, char *argv[]){ QApplication a(argc, argv); qDebug()"以下是编辑字符串操作:")<<

2018-01-19 17:33:26 653

原创 mycom第一版

mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "win_qextserialport.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic:

2018-01-18 20:43:03 342

转载 Qt中字符串转换十六进制学习笔记

main.cpp 主函数#include "StringToHex.h" QString str = "ABBCCDD120190E"; QByteArray temp; StringToHex(str, temp); qDebug()<<temp.toHex(); qDebug()StringToHex.h头文件void Stri

2018-01-18 13:37:02 895

转载 QT容器类介绍

当创建一个QObject时,如果使用了其他的对象,作为父对象(parent),那么这个Object就会被添加到父对象children()列表中。 对象树与拥有权: QWidget作为QWidgets模块的基础类:扩展了动态间的父子关系。元对象系统: Qt中的元对象系统(Meta-Object Stystem)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。 (1)该类必须

2018-01-17 16:53:35 237

原创 QT对象模型与容器类-信号和槽(1)

QT对象模型与容器类 核心机制:对象模型 信号和槽,属性系统,对象树与拥有权,元对象系统等。 容器类:Container Class QString QByteArray QVariant和正则表达式的使用等相关内容。 一个强大的无缝对象通信机制:信号和槽 signals and slots 可查阅、可设计的对象属性系统 object properities 强大的事件过滤器 event

2018-01-16 16:51:50 207

原创 霍亚飞 的QT Creator快速入门学习笔记-第三章(1)

mywidget.h文件代码#ifndef MYWIDGET_H#define MYWIDGET_H#include #include class QErrorMessage;namespace Ui {class MyWidget;}class MyWidget : public QWidget{ Q_OBJECTpublic: explic

2018-01-10 16:26:16 1314

原创 CRC代码算法实现-CRC-16 MODBUS代码实验

#include "stdio.h"unsigned char auchCRCHi[]={0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC

2017-12-20 15:49:52 1233

原创 JAVA马士兵老师(2)

JAVA运行机制 关键字 程序格式:比算法还重要 1.大括号对齐 2.遇到左大括号缩进 按Tab键 3.程序块之间加空行 4.运算符两侧加空格 6.{前面有空格 运算符 算数运算符: 关系运算符: 逻辑运算符 位运算符:>>> 赋值运算符: 扩展赋值运算符: 字符串连接运算符

2017-12-15 15:12:41 134

原创 马士兵老师JAVA学习(1)

这里说一下比较重点的 内存管理: heap:new出来的东西 堆 stack:局部变量 data segment:静态变量,字符串常量 code segment:存放代码 局部变量: 成员变量: 凡是在大括号内的声明的变量,出去之后就没人认识他了 要学会改程序 字符类型 char eChar = 'a';char cChar = ‘中

2017-12-14 17:23:45 310

原创 C语言16位拆成高低八位,和高低八位合成16位数据(1)

#include <stdio.h>#include <stdlib.h>char right,left,temp;//right表示第八位,left表示高八位int size_right,size_left,size_temp;short int number,size_number;short int number_two,number_three;//int 是四个字节 short

2017-12-07 17:11:07 21094

原创 滑动变阻器改进AD输入电压(STM32)

根据上述电路图:我们能够得到下面公式(单片机是5V电源): Ud = 5*Rx/(Rx+Rk) Rx = 5K Rk = 5K 因此能够的到Ud范围是在1-3V,但是做实验中却发现,当到极限后,即Rx趋近于0时,Ud确实是趋向于1V,但是当等于0时,Ud=5V,其他电压同样,通过示波器和电压表都出现了类似状况,具体原因不知道怎么解释,只能更改电路。公式为:Ud = 5-5*(Rk)/(Ra+

2017-12-04 17:21:24 2716

原创 字符串转化为整型

#include <stdio.h>#include <stdlib.h>char str1[] = "HelloWorld";// 通过字符数组来定义字符串"HelloWorld",数组中每个存储单元存放一个字符char *str2 = "HelloWorld";// 通过字符指针来定义字符串"HelloWorld",指针str2指向一个存放字符串"HelloWorld"的连续地址单元的

2017-12-01 19:12:44 1176 1

转载 斐波那契数列

long long Fibonacci(unsigned int n){ if(n<=0) return 0; if(n==1) return 1; return Fibonacci(n-1)+Fibonacci(n-2);}//面试官期待的算法,时间复杂度降了long long Fibonacci(unsiged n){ i

2017-12-01 15:26:13 101

转载 快速排序法

摘自百度百科 快速排序(Quicksort)是对冒泡排序的一种改进。 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作

2017-12-01 15:00:23 91

原创 NMEA-0183信息整理与分析

主要针对NMEA协议进行了整理。分为三个基础数据梳理函数和五个常用GPS解析函数。 三个基础数据处理函数: 1:逗号位置处理函数://从buf里面得到第cx个逗号所在的位置//返回值:0~0XFE,代表逗号所在位置的偏移.// 0XFF,代表不存在第cx个逗号 u8 NMEA_Comma_Pos(u8 *buf,u8 cx)//buf为指针变量,cx为第几个逗号 2.m^n

2017-11-22 16:26:03 5962 2

转载 3 栈和队列-栈的定义(待更改)

//An是栈顶,A1端是栈底//基本操作InitStack(&S)//操作结果:构造一个空栈S。DestroyStack(&S)//初始条件:栈S已经存在//操作结果:栈S被销毁ClearStack(&S)//初始条件:栈S已经存在//操作结果:栈S清空为出栈StackEmpty(S)//初始条件:栈S已经存在//操作结果:若栈S为空栈,则返回TRUE,否则返回FALSES

2017-11-19 11:09:23 136

转载 2.3线性表的链式表示和实现(2)-静态链表(1)

静态链表 补充一下之前的理解,感觉怪怪的。 LinkList&La,表示La就是理解为头结点。 补充一下知识点: pa?pa:pb; if(pa) pa->next = pa else pc->next = pb需要重点理解的盖面: 1.备用链表 2.游标//一维数组来描述线性链表://----------线性表的静态单链表存储结构-----#define MAXSIZE 1

2017-11-18 13:00:10 116

转载 2.3线性表的链式表示和实现(1)未弄完待更改

Status ListInsert_Sq(SqList &L,int i,ElemType e){ //在顺序线性表L中第i个位置之前插入新的元素e //i的合法值为1<=i<=ListLength_Sq(L)+1 if(i<1||i>L.length)return ERROR;//i 值不合法 if(L.length >= L.listsize) {

2017-11-17 17:06:56 131

转载 2.2线性表的顺序表示和实现(2)待修改

Status ListInsert_Sq(SqList &L,int i,ElemType e){ //在顺序线性表L中第i个位置之前插入新的元素e //i的合法值为1<=i<=ListLength_Sq(L)+1 if(i<1||i>L.length)return ERROR;//i 值不合法 if(L.length >= L.listsize) {

2017-11-17 13:26:46 136

转载 2.2线性表的顺序表示和实现(1)

线性表的第i个数据元素ai的存储位置为: LOC(ai) = LOC(a1)+(i-1)*l ,其中ai称为基地址 通常用数组来描述数据结构中不同的顺序存储结构 C语言中可用动态分配的一维数组://-----------线性表的动态分配顺序存储结构-------------#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量 #define LISTI

2017-11-16 14:33:50 190

转载 第二章(2.1线性表的类型定义)

探究++a与a++的区别到底在哪:这里有一个网址写的很不错。 https://jingyan.baidu.com/article/9f63fb919997f3c8400f0efb.html 我在这里给出其结论: (1) 对于b=++a,编译器是将a加1后直接赋值给b (2)对于c=a++,编译器是先将a的值保存在一个临时变量中,本文是eax寄存器,然后将a加1,最后将临时变量的值赋值给c。结

2017-11-16 13:55:22 170

转载 抽象数据类型线性表的基本操作(个人学习)

InitList(&L)//操作结果:构造一个空的线性列表DestroyList(&L)//初始条件:线性表L已经存在//操作结果:销毁线性表LClearList(&L)//初始条件:线性表L已存在//操作条件:将L重置为空表ListEmpty(L)//初始条件:线性表L已经存在//操作结果:若L为空表,则返回TRUE,否则返回FALSEListLength(L)//初始条件

2017-11-16 11:15:33 1301

转载 网上数据结构初学笔记(1)

关于数据结构的知识发现基本属于空白,所以决定学习它,决定每天抽出一到两个小时去思考,网上说要多思考,我觉得这个非常正确,多画图,多思考。//定义一个节点的结构typedef struct node{ int member;//节点中的成员 struct node *pNext;//指向下一个节点的指针}NODE,*pNode;//声明变量,声明指针变量大法师打发斯蒂芬首先说一下

2017-11-16 11:11:06 157

原创 AD调试小改(1)

实验器材: 战舰STM32F103开发板V3版本 实验目的: 学习STM32内部ADC的使用 硬件资源: 1,DS0(连接在PB5) 2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面) 3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动,FSMC_NE4接LCD片选/A1

2017-11-10 16:57:14 793

转载 正交编码器学习(二)

编码器的设计思想有多种思路,主要分为两种(1)定时器中断计数(2)外部中断触发计数。 STM32中包含了TIM_EncoderInterfaceConfig()函数[1]。其配置的定时器有编码器接口等功能,一般是定时器的通道1和通道2才能作为编码器的输入口,对应编码器输出的两项。 TIMx参数就是使用哪个定时器作为编码器接口的捕捉定时器。 个人理解为:一个编码器占用一个定时器。 TIM_En

2017-11-10 14:25:31 13842 4

原创 旋转编码器模块研究(1)

1.和正常的编码器原理是类似的,不过用着更方便了。 2.不需要搭建外围电路,已经做完上拉,估计精度比较垃圾。淘宝网址如下: https://detail.tmall.com/item.htm?spm=a230r.1.14.13.1183b85fR10LMA&id=530477227931&cm_id=140105335569ed55e27b&abbucket=13 https://detail

2017-11-09 16:13:59 2750

转载 CanFestival 源代码目录结构

CanFestival 源代码目录结构 ./src 与处理器无关的CANopen协议栈的ANSI-C源代码 ./include 针对各种处理器的头文件 ./drivers 针对各硬件的驱动 ./examples 用于测试程序 ./objdictgen 带有图形用户界面的对象字典编辑器 ./doc 说明文档 在CanFestival中,所有源代码可以分为四大部分: (1)目标

2017-11-08 11:44:36 4141

原创 周立功阅读笔记-CANopen轻松入门基于DS301(一)

CANopen阅读笔记 4.CANopen的预定义报文和ID分类 5.对象字典OD(Object dictionary) 6.网络管理NMT(Network management)与CANopen主站 7.过程数据对象PDO(Process data object) 8.服务数据对象SDO(Service data object) 9.特殊协议 CAN-OPEN –NMT主机 —-

2017-11-07 17:18:53 10082 1

转载 CAN通信三——正点原子资料(库函数)1版本1

本章,我们使用的是 450Kbps 的通信速率,使用的是 ISO11898 标准, 显性电平对应逻辑 0, CAN_H 和 CAN_L 之差为 2.5V 左右。而隐性电平对应逻辑 1, CAN_H 和 CAN_L 之差为 0V。在总线上显性电平具有优先权,只要有一个单元输出显性电平,总线上即为显性电平。而隐形电平则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平

2017-11-03 17:11:03 1624

原创 CAN学习笔记二——瑞萨说明书(待更改)

CAN 协议及标准规格(瑞萨第一版本待更改) 关于 ISO11898:ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。 关于 ISO11519:ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。 图6非常重要:ISO标准化的协议CAN 正点原子用的是 ISO1189每种帧是不同的构成格式。采用标准格式说明,后续扩展我自己再加。

2017-11-03 15:46:38 1651

转载 CAN 学习笔记一_【基于STM32的CANopen通讯协议的实现】

1_【基于STM32的CANopen通讯协议的实现】 CANopen分为三部分: 1、通信部分:PDO协议,SDO协议,NMT协议,特殊功能对象 2、对象字典:数据类型、通信对象、应用对象 3、应用部分:应用程序、设备描述 每个节点维护一个对象字典(Object Dictionary,OD。他是一个有序的对象组,每个对象用一个16位的索引值。 一个8位的字索引值寻址。 该对象字典保存了

2017-11-03 14:08:11 16590 1

转载 C语言字符串与数字之间的相互转换

在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。

2017-10-25 14:30:16 1660

转载 廖雪峰Python(1)-正则表达式

正则表达式

2017-10-25 08:33:42 763

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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