王昱顺
发表于 2024-6-10 15:24:04
HUHUhuhu 发表于 2024-6-10 15:08
王工您好,十分感谢您的开源资料提供给我的学习机会。我将您的软件下载一下编译的时候出现了这个错误,请问 ...
这个是我使用了超过31号的中断,需要使用一个小插件来解决他,具体的下载链接在这里
深圳国芯人工智能有限公司-工具软件 (stcai.com)
HUHUhuhu
发表于 2024-6-10 15:35:54
原来是这样,十分感谢。我还是首次使用STC单片机,不太明白。
12fen
发表于 2024-6-13 18:28:22
感谢!typedef struct Moto_Save_Dat
{
u8 dir; // 方向u8应该改为char?
u8 pp; // 极对数
u16 zero; // 零点校准值
u8 can_id; // can通讯设置地址
u8 save_ok; // 是否保存过
u8 buffer; // 写入/读出缓冲区
} Moto_Save_Dat; u8 dir应该改为char dir?
王昱顺
发表于 2024-6-13 22:00:04
12fen 发表于 2024-6-13 18:28
感谢!typedef struct Moto_Save_Dat
{
u8 dir; // 方向u8应该改为char?
这个参数的范围是0~1,是自动校准中使用的参数,并不需要关心。校准的时候会自动辨认的
12fen
发表于 2024-6-13 22:25:08
王昱顺 发表于 2024-6-13 22:00
这个参数的范围是0~1,是自动校准中使用的参数,并不需要关心。校准的时候会自动辨认的 ...
我看到程序里是1和-1
这里应该是有符号的定义
12fen
发表于 2024-6-14 11:12:49
case 4:
if (_auto_diff > 0)
moto_save.dir = 1;
else
moto_save.dir = -1;
moto_save.pp = (u8)(fabs((float)Encode_bit_Max / (float)_auto_diff) + 0.5);
Task_This++; // 完成dir和pp参数读取,进行零点校准
王昱顺
发表于 2024-6-14 16:01:18
12fen 发表于 2024-6-14 11:12
case 4:
if (_auto_diff > 0)
moto_save.dir = 1;
是的,你说的对。这确实是一个bug
不过因为我取出的时候依旧是跟-1所比较的。所以实际数值应该是1和255了。
rzsnb
发表于 2024-6-19 07:40:43
本帖最后由 rzsnb 于 2024-6-19 08:38 编辑
老弟,能不能帮忙看一下怎么回事?按键松手后,电机转动了一些没半圈位置后停止,应该是正常的吧,我用usb转CAN分析仪发送数据,8个BYTE数据怎么发送,电机都无反应,8个BYTE数据,第一个数据,08,04,02,0A,01,02,04电机都无反应,两个USN转CAN分析仪互相发送、接收数据,正常,CAN我不懂,麻烦看一下,哪里错了?帧ID参数需要设置吗?多谢了
王昱顺
发表于 2024-6-20 11:50:23
本帖最后由 王昱顺 于 2024-6-20 12:02 编辑
rzsnb 发表于 2024-6-19 07:40
老弟,能不能帮忙看一下怎么回事?按键松手后,电机转动了一些没半圈位置后停止,应该是正常的吧,我用usb ...
发送的id是有限制的,具体请查看config.h里面的user_can_id定义,之后的数据才跟写的说明里定义的一样
还有一个问题,0x55的同步信号是多个电机通讯中才使用的,平常可以不使用sync标志位,只打开en标志位。
给你一些示例
这个作用是设定速度模式,电机运行,速度500
80 01 00 00 00 00 01 f4
这个作用是设定速度模式,电机运行,速度-500
80 01 00 00 ff ff fe 0c
以下是同步帧的用法:
假设有两个电机,id为1和2(id0默认为广播地址)
现设定id1电机速度500,id2电机速度400,设置速度同步生效
id1:c0 01 00 00 00 00 01 f4//设定电机1速度
id2:c0 01 00 00 00 00 01 90//设定电机2速度
id0:00 00 00 55 00 00 00 00//同步生效
rzsnb
发表于 2024-6-20 16:37:05
本帖最后由 rzsnb 于 2024-6-20 16:39 编辑
王昱顺 发表于 2024-6-20 11:50
发送的id是有限制的,具体请查看config.h里面的user_can_id定义,之后的数据才跟写的说明里定义的一样
还 ...
老弟,我上学没学过电脑、单片机有关课程,一些程序看不懂,麻烦你直接和说说就你这个原程序的ID具体数据吧,我先把电机转起来再说{:sad:},基础弱,50多了,新东西也学不了了
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15