- 博客(16)
- 收藏
- 关注
原创 CAN总线协议
两根通信线(CAN_H、CAN_L),线路少差分信号通信,抗干扰能力强高速 CAN(ISO11898):125k~1Mbps, <40m低速 CAN(ISO11519):10k~125kbps, <1km异步,无需时钟线,通信速率由设备各自约定半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序11位/29位报文ID,用于区分消息功能,同时决定优先级可配置1~8字节的有效载荷可实现广播式和请求式两种传输方式应答、CRC 校验、位填充、位同步、错误处理等特性。
2025-11-13 15:24:11
780
原创 I2C通信协议
I2C(Inter IC Bus)是由Philips公司开发的一种通用数据总线两根通信线:SCL(Serial Clock)、SDA(Serial Data)同步,半双工带数据应答支持总线挂载多设备(一主多从、多主多从)
2025-10-17 11:59:15
1698
原创 SPI通信协议
SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)同步,全双工支持总线挂载多设备(一主多从)
2025-10-16 13:36:13
517
原创 QT学习记录
1 创建 QPushButton * btn = new QPushButton2 设置父亲 setParent(this)3 设置文本 setText(“文字”)4 设置位置 move(宽,高)5 重新指定窗口大小 resize6 设置窗口标题 setWindowTitle7 设置窗口固定大小 setFixedSize1、方式一2、方式二2 信号和槽点击我的按钮,关闭窗口3 自定义信号和槽1 自定义信号 1.1 写到 signals下 1.2 返回 void 1
2025-08-29 11:11:18
737
原创 QT案例-翻金币
其中,int代表对应的关卡 ,也就是QMap中的key值,而value值就是对应的二维数组,我们利用的是 QVector<QVector>来记录着其中的二维数组。当我点击一个硬币的时候,禁用其他按钮,直到周围按钮翻转完毕,还原,防止在胜利一瞬间突然点击其他按钮导致其他按钮也翻转,并且游戏也胜利的情况。如果快速点击,会在金币还没有执行一个完整动作之后 ,又继续开始新的动画,我们应该在金币做动画期间,禁止再次点击,并在完成动画后,开启点击。2、点击构建后,在资源文件夹中找到生成的Release文件夹。
2025-08-29 11:10:51
855
原创 MQTT学习笔记
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,适用于低带宽、不可靠网络环境。固定报头(Fixed Header)必须存在,用于描述报文类型和相关信息。包含报文类型(如连接、订阅、发布等)和服务质量(QoS)等级。byte1:MQTT报文类型(4位) + 保留位(4位)byte2:剩余长度(可变报头长度 + 有效载荷长度)可变报头(Variable Header)不一定存在,具体内容取决于报文类型。
2025-06-13 17:01:11
1139
原创 将本地项目上传到GitHub
Repository name: 仓库名称Description(可选): 仓库描述介绍Public, Private : 仓库权限(公开共享,私有或指定合作者)Initialize this repository with a README: 添加一个README.mdgitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignorelicense: 证书类型,对应生成文件LICENSE。
2024-07-18 11:16:05
1141
原创 Windows和Linux中网络编程
注:windows下的UDP编程思路和Linux差不多,这里没有写代码,大家可以自己尝试写一下。下面例程只是简单实现Windows下TCP通信,接受和发送的逻辑需要自己根据需要进行修改。注:如果Windows下编译报错,需要在tasks.json中的字段。
2024-07-05 08:14:38
591
原创 Linux系统总结
② 函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg)② 函数原型:int pthread_cond_init(pthread_cond_t *restrict cond,const pthread_condattr_t *restrict attr);② 函数原型: time_t time(time_t *t);
2024-06-28 14:18:10
1175
原创 vscode使用小优化
在设置中找到Code Actions On Save,然后点击下面的“在setting.json中编辑”,打开后将下面的代码全部复制替换setting.json中的原内容,然后ctrl+s保存,关闭文件即可。,勾选Code-runner:Run In Terminal即可。,在Files:Encoding中选择自己需要设置的默认编码即可。,根据需要勾选下面两项即可。
2024-06-26 09:55:15
345
原创 ubuntu16.04 硬盘/磁盘扩容
最后将新建的 linux-swap 中的 UUID 值更新到/etc 下 fstab 文件中。成功扩容, 到此扩容结束。现在我们再来查看硬盘容量。
2024-06-25 16:36:07
2141
原创 LVGL移植
其中lvgl/src文件夹内存放的是LVGL的核心源码,lvgl/examples/porting文件夹内存放的是lvgl与底层的接口函数,这些函数需要我们根据自己的项目进行修改。
2024-06-25 16:06:32
1536
原创 FreeRTOS移植
FreeRTOS 包含 Demo 例程和内核源码(比较重要,我们就需要提取该目录下的大部分文件)。FreeRTOS 文件夹下的 Source 文件夹里面包含的是 FreeRTOS 内核的源代码,我们移植 FreeRTOS 的时候就需要这部分源代码;FreeRTOS 文件夹下的 Demo 文件夹里面包含了 FreeRTOS 官方为各个单片机移植好的工程代码, FreeRTOS 为了推广自己,会给各种半导体厂商的评估板写好完整的工程程序,这些程序就放在 Demo 这个目录下,这部分 Demo 非常有参考价值。
2024-06-25 15:39:36
1278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅