自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 canopen通信(节点心跳)

我们发送箭头所示的SDO数据,将心跳时间改为2000,即为2s发送一次心跳数据。回复60为设置成功,可以看到后续的数据变为2s发送一次。此时我们可以看到心跳时间为1s发送一次。数据为05的是我们的心跳发来的NMT状态。用SDO通信去修改生产者心跳时间,SDO的通信协议帧格式为。

2024-08-03 11:59:40 459

原创 对象词典编辑器的应用(c代码的生成)

(1)0X1600到0X17FF索引为接受PDO参数的映射,此处我们可以不做更改,也可以设置映射参数。(2)点击箭头2所指向的位置,里面是各种通信参数,这个根据自己的需要添加,例如我们在1.新建节点的时候添加的心跳,也可以在这里面添加。(1)0X1400到0X15FF索引为接受PDO参数的设置这一步我们不做任何更改,我们需要做的是理解箭头三所指向的子索引所代表的含义。(4)我们可以看到箭头4指向的框图就是我们的通信参数,索引1017代表的就是我们从节点的心跳生产时间,它用于给主站发送从站的状态。

2024-08-03 11:36:20 284

原创 Qt中文件IO及线程类的介绍和使用

但是有时候这个线程会出现一些耗时操作(例如文件IO、网络、复杂算法等),这些耗时操作会导致主线程阻塞,此时用户发起的一些常规UI操作就无法得到及时的响应,此时操作系统检测一些关闭等UI操作无法及时响应则会弹出程序未响应窗口。子线程执行了耗时操作(循环睡眠),主线程接收子线程操作的通知,在实际的开发中,主线程接收到子线程耗时操作的通知后可能会刷新UI显示(例如显示文件读写的进度),这种情况下需要使用信号槽进行两个线程之间的通信。此函数是子线程的起始点,此函数执行完成后,子线程也执行结束。

2024-07-30 14:42:15 891

原创 对象字典编译器的环境搭建

点击我们的canfestival-de1fc3261f21源文件看到如图二所示的文件打开箭头所指向的文件,将图一我们复制的文件黏贴到objdictedit文件里面去。下载的步骤按照(1).(2).(3).(4)即可,下载时的路径可自己选择。如图三所示我们双击箭头一所指向的程序就会出来左边的两个窗口,表示我们的环境已经搭建完成,再按照箭头2和3的步骤就可以新建一个字典。中间有一小窗口会弹出我们选择YES然后点击Next就会看到图二所示的窗口,把箭头指向的文件选上(第一个选项)然后点击Next即可下载完成。

2024-07-30 14:41:16 483

原创 cubemx配置ADC采集(DMA模式)

1.DMA有两种模式,分别为CIRCULAR和NORMAL。(1).模式:DMA的CIRCULAR模式只需要调用一次DMA开启函数,DMA就会持续的搬运数据,提高了数据的刷新速度,但是在CIRCULAR模式下,不管ADC新的一轮数据采集是否完成,有可能直接将旧数据搬运走。建议加上ADC转换完成函数,确保数据的完整性(2).

2024-06-17 17:15:06 661

原创 串口通信整型和浮点型的转化问题(共用体解决)

串口通信整型和浮点型的转化问题

2024-05-28 09:51:39 211

原创 Qt中信号槽的介绍及使用方法

这是最简单的一种连接方式,因为信号函数和槽函数都在Qt中预设了,只需要通过connect函数“连线”即可。信号函数是非常特殊的一种函数,只有声明,没有定义,且不能在代码中直接调用,可以配合emit关键字进行发射。使用信号槽也可以进行参数传递,但是这种方式通常用户后面较为复杂的情况,本次讲解的代码也不是最优解。信号槽是Qt基于C++语法上新增的特性,可以实现对象之间的通信,形成一定因果关系。参数1:发射者,通信的对象,此对象是信号槽触发的来源,例如:按钮对象(n.)【例子】点击按钮,按钮上显示点击的次数。

2023-02-02 22:50:28 1877

原创 QT的UI基础部分详细介绍

QWidget类是所有可视化组件和窗口的基类,因此QWidget中成员可以继承给众多派生类使用。以最常见按钮(QPushButton)为例,讲解在窗口中添加子组件的方法。可以通过int width() const获得数值,即getter。移动到设定的坐标处,所有的组件和窗口以左上角为定位点。Qt可以使用QSS语法设置组件的样式效果。横坐标,单位像素,原点左上角,正方向右。纵坐标,单位像素,原点左上角,正方向下。参数2:按钮在哪个对象上。参数1:按钮显示的文字。在线色表+颜色进制转换。

2023-02-02 22:47:38 1789

原创 运算符重载的方法及介绍

C++中的运算符默认的操作类型只支持基本数据类型,例如+支持整型浮点型等类型的运算,但是对于很多用户自定义的类型(Dog类、Cat类、Test类等)的对象也需要支持运算符,例如 狗+狗。运算符重载是针对新类型数据的实际需要对原有运算符的功能进行扩充,因此重载之后的功能应该与原有的功能类似,避免没有目的地使用运算符重载。可以使类B中的某一个成员函数成为类A的友元成员函数,这样类B中只有这个成员函数可以访问类A的所有成员。赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、=

2023-01-10 20:09:37 261

原创 GPIO输出控制PB0

/ GPIO端口输出速度寄存器(GPIOB->OSPEEDR)// GPIO端口输出类型寄存器(GPIOB->OTYPER)10:表示通用输出模式,因此我们需要把它的低二位置成10.00:低速 01:中速 10:快速 11:高速。// GPIO端口模式寄存器(GPIOB->MODER)此处我们选择推挽输出,因此我们需要把它的第零位置0.// 把PB0端口复位置0,(低电平亮,高电平不亮)此处我们可以选择中素模式,需要把它的低二位置成01。0:推挽输出 1:开漏输出。(以stm32为列)

2023-01-02 19:28:46 281 1

原创 关于485,CAN, 单总线,SPI,i2c的简单介绍

以下通信协议的基本介绍和用法一.485二.CAN三.单总线四.SPI五.I2C

2022-12-29 19:58:22 1455 1

空空如也

空空如也

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

TA关注的人

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