This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//已完成
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°;