C610电调CAN通信协议及使用指南基本信息及资料
通信协议:C610电调采用CAN通信协议
协议参考文档:40. CAN—通讯实验 — [野火]STM32 HAL库开发实战指南——基于H743_Pro_V
硬件适配:Arduino Mega2560无CAN差分信号引脚,需外接MCP2515(实现CAN差分信号与SPI信号转换)
推荐库:GitHub - autowp/arduino-mcp2515(Arduino MCP2515 CAN接口库)
报文接收格式用于向电调发送控制指令控制电调的电流输出,两个标识符(0x200和0x1FF)各自对应 控制4个ID的电调。控制转矩电流值范围-10000-0-10000,对应电调输出的转矩电流 范围-10-0-10A。
即0x200用于控制1-4号电调
数据域
内容
电调ID
DATA[0]
控制电流值高8位
1
DATA[1]
控制电流值低8位
1
DATA[2]
控制电流值高8位
2
DATA[3]
控制电流值低8位
2
DATA[4]
控制电流值高8位
3
DATA[5]
控制电流值低8位...
Makefile 入门:从基础到实用技巧一、为什么需要Makefile?简单说,Makefile是「编译规则说明书」。一个工程可能有几十上百个源文件,按功能放在不同目录里。Makefile定义了:
哪些文件先编译,哪些后编译
哪些文件修改后需要重新编译
甚至可以执行打包、备份等额外操作
有了Makefile,只需敲一个make命令,整个工程就会自动编译,极大提高开发效率。
二、先搞懂:编译和链接在讲Makefile之前,先明确两个基本概念:
编译(compile):把源代码(.c/.cpp)变成中间目标文件(Unix下是.o,Windows下是.obj)。编译器只检查语法和函数/变量是否声明。
链接(link):把一堆中间目标文件拼成可执行文件。链接器找函数的实现,找不到就会报错(比如VC里的Link 2001)。
举个例子:main.c编译成main.o,tool.c编译成tool.o,最后链接成app可执行文件。
三、Makefile 基本规则Makefile的核心是「依赖关系」和「执行命令」,格式如下:
123目标(target)... : 依赖...
C语言指针到底是个什么东西指针,恐怕是C语言中最让人又爱又恨的东西。有人觉得它很难懂,但是不得不说,它真的很好用!!!。
指针是什么?—— 本质是地址你可以把指针理解为一种特殊的变量类型——没错,int*、char*本质上都是指针类型。它们的核心功能只有一个:存储内存地址。
先看个最基础的例子:
12345678910#include <stdio.h>int main(int argc, char const *argv[]){ int a = 123; int* pointer = &a; // 取a的地址,赋值给指针 printf("a的值: %d\n", a); printf("pointer存储的地址: %p\n", pointer); printf("pointer指向的内容: %d\n", *pointer); // *表示"取地址中的值" return 0;}
运行结果显而易见:
123a的值: 123p...