59 lines
3.3 KiB
Plaintext
59 lines
3.3 KiB
Plaintext
//已完成
|
||
1、IO口调试,定时器定时,串口收发数据;
|
||
2、电机的启动与停止,自动找寻始终点;
|
||
3、电机点动运行,每次点动结束发送数据至串口,点动距离可自由调节(单位:毫米);
|
||
4、电机由起始点移动至结束点,移动过程可自由调节步长(单位:毫米)与每一步的停滞时间(单位:毫秒),数据在停滞时间内发送至串口,到达结束点停留一段时间后自动回到起始点。停留时间可设定(单位:秒);
|
||
5、电机在起始点与结束点之间循环移动,移动过程可自由调节步长(单位:毫米)与每一步的停滞时间(单位:毫秒),数据在停滞时间内发送至串口;
|
||
6、以光栅信号确定测量始终点,只有当磁条通过光栅时装置才会反馈测量值。
|
||
7、添加了角行程磁条测试逻辑,旋转台减速比为1:90,测试方案与直行程基本相同
|
||
8、添加了起始位、结束位、测量中和无状态四种位置状态显示
|
||
|
||
//使用说明
|
||
在主函数中,我们使用函数Deal_Uart_Data_For_Module(void)来分析处理接收到的数据,使用函数Deal_Motor(void)来控制电机,使用函数ADC_Multichannel()来采集ADC数据。
|
||
电机启动需要使用motor_start(void)和motor_mov(unsigned int speed)两个函数,前者配置引脚,后者启动脉冲,参数speed可控制脉冲频率;电机关闭可使用motor_stop(void)函数。
|
||
函数FWD(void)和REV(void)用于改变电机转动方向,若要判断磁条当前位置,需要使用函数motor_seat(void),初始化磁条位置可使用mov_begin(viod)或mov_end(void)让磁条移动到起始位或结束位。
|
||
void mov_loop1(void)、void mov_loop1_ang(void)、void mov_loop2(void)、void mov_loop2_ang(void)、void mov_step(void)、void mov_step_ang(void)控制电机运行模式。
|
||
串口接收数据需要使用receive_ttl_data(uint8_t rx_data)函数,发送数据需要使用send_set_resp(unsigned int OrderNum, unsigned int addr, unsigned char Num, unsigned char sData[])函数。
|
||
|
||
//协议
|
||
PC->主板
|
||
SOF: 1个字节 0x05 起始字节
|
||
Len: 2个字节 长度
|
||
Fou_adr: 2个字节 源地址
|
||
Com_adr: 2个字节 目标地址,0ff为广播地址
|
||
Cmd16: 2个字节 命令字
|
||
Request-data: N个字节 数据
|
||
XOR: 2个字节 校验
|
||
END: 1个字节 0x1B 结束字节
|
||
数据部分
|
||
测量功能: 00 直行程 01 角行程
|
||
控制电机运行: 00 停止 01 运行 02 运行到起始位 03 运行到结束位
|
||
运行模式: 00 点动(方案三) 01 连续(方案一) 02 连续(方案二)
|
||
电机运行多少圈为一个步长; 00 00 (65535)半毫米
|
||
电机运行间隔时长: 00 00 (65535)毫秒(数据反馈时间)
|
||
到“结束点”后,停止时间 00 00 (65535)秒
|
||
例:05 00 14 00 A1 00 B1 F0 01 00 01 01 00 01 03 E8 00 10 CD 40 1B//方案一
|
||
|
||
主板->PC
|
||
SOF: 1个字节 0x05 起始字节
|
||
Len: 2个字节 长度
|
||
Fou_adr: 2个字节 源地址
|
||
Com_adr: 2个字节 目标地址,0ff为广播地址
|
||
Cmd16: 2个字节 命令字
|
||
Request-data: N个字节 数据
|
||
XOR: 2个字节 校验
|
||
END: 1个字节 0x1B 结束字节
|
||
数据部分
|
||
测量功能: 00 直行程 01 角行程
|
||
控制电机运行: 00 停止 01 运行 02 运行到起始位 03 运行到结束位
|
||
运行模式: 00 点动(方案三) 01 连续(方案一) 02 连续(方案二)
|
||
到位开关状态: 00 无状态 01 起始位 02 结束位 03 正在通过光栅
|
||
采样点压; 00 00 (65535)毫伏
|
||
激光电压: 00 00 (65535)毫伏
|
||
磁条长度: 00 00 (65535)毫米
|
||
例:05 00 14 00 A1 00 B1 F0 01 00 01 01 03 07 03 00 00 00 10 CD 40 1B
|
||
|
||
//直行程电机转动一圈,磁条水平位移为5mm;
|
||
//角行程电机转动一圈,磁条旋转4°;
|
||
|