使用SC95F8617开发板的RS485控制摄像机云台上下左右运动和停止。
一、电动云台
电动云台使用的协议是:PELCO-D/P 电压:DC12V 波特率:2400 地址码:1
二、连接图片
开发板的RS485 A和B与云台的A和B连接。
三、程序
主要的程序部分:
3.1、main.c
- #include "config.h"
- void main(void)
- {
- uchar key;
- uint i=0;
- uint js=0;
- uint jsdat=0;
- uchar t;
- Init_led();
- Init_key();
- Init_uart(32, 2400);
- Init_rs485();
- uart_chl(RS485);
- while(1)
- {
- key=Scan_key();
- if(key!=0)
- {
- switch (key)
- {
- case UP_KEY:
- LED0=0;
- LED1=1;
- LED2=1;
- LED3=1;
- Fun_UpCmd();
- break;
- case DOWN_KEY:
- LED0=1;
- LED1=0;
- LED2=1;
- LED3=1;
- Fun_DownCmd();
- break;
- case LEFT_KEY:
- LED0=1;
- LED1=1;
- LED2=0;
- LED3=1;
- Fun_LeftCmd();
- break;
- case RIGHT_KEY:
- LED0=1;
- LED1=1;
- LED2=1;
- LED3=0;
- Fun_RightCmd();
- break;
- case CENTER_KEY:
- LED0=1;
- LED1=1;
- LED2=1;
- LED3=1;
- Fun_StopCmd();
- break;
- default:
- break;
- }
- }
- }
- }
3.2、uart.c
四、调试过程中遇到的问题
串口发送命令函数,使用查询TI标志位是否发送成功,会出现程序在while(TI==0);这条语句。使用中断方式没有这问题。
五、测试结果
按下按键上下左右,云台相应的动作,按下中间键云台停止转动。
|