标题:
STM8S003串口控制电机锁程序
[打印本页]
作者:
关系网后
时间:
2017-3-1 11:07
标题:
STM8S003串口控制电机锁程序
STM8S003单片机通串口控制电机锁
0.png
(69.61 KB, 下载次数: 58)
下载附件
2017-3-1 22:59 上传
完整代码下载:
lock.rar
(651.73 KB, 下载次数: 30)
2017-3-1 11:07 上传
点击文件名下载附件
下载积分: 黑币 -5
下面是主程序:
#include "IOSTM8S103F3.h"
#include "led.h"
#include "uart.h"
#include "common.h"
#include "motor.h"
#include "timer.h"
void rxdata_pro();
void handle_pro();
u8 rx_flag = 0;
extern u32 time;
extern u8 RxBuffer[RxBufferSize];
u8 lockstatus = 2;
u8 check = 0;
u8 oldpos;
u8 cmd_flag;
u8 qzflag = 0;
void main()
{
CLK_CKDIVR = 8;
uart_conf();
lock_config();
PWM_Timer1_config();
PWM_Start();
delay_config();
enableInterrupts();
// wdg_config();
unlock();
while(1)
{
feetdog();
rxdata_pro();
if(!HOARE_LVALUE) led_tongle();
if(!HOARE_RVALUE) led_on();
handle_pro();
}
}
void rxdata_pro()
{
int i;
if(!rx_flag) return;
check = 0;
for(i = 0;i < 3;i++)
check ^= RxBuffer[i];
if(check != RxBuffer[3])
return;
cmd_flag = 1;
switch(RxBuffer[2])
{
case 1:
if(HOARE_RVALUE) lock();
break;
case 2://关门
if(HOARE_LVALUE) unlock();break;
case 3://强制闭锁
//if(HOARE_RVALUE) qzlock();
if(!qzflag){
qzlock();qzflag = 0;
}
break;
case 4:
if(!qzflag){
qxqzbs();qzflag = 0;break;
}
break;
default:break;
}
rx_flag = 0;
}
void wdg_config()
{
CLK_ICKR |= 1<<3;
while(!(CLK_ICKR & (1<<4)));
IWDG_KR = 0x55; //解锁
IWDG_PR = 6;//128k 256分频 500hz
IWDG_RLR = 255;
IWDG_KR = 0xCC;
}
void feetdog()
{
IWDG_KR = 0xAA;
}
void handle_pro()
{
if(HOARE_LVALUE && HOARE_RVALUE)
{
cmd_flag = 0;
if(!oldpos) lock();
else
unlock();
}
if(GetDoorStatus())
{
if(HOARE_LVALUE)
{
delay(1000);
unlock();
}
}
}
复制代码
作者:
bloss
时间:
2017-10-7 13:49
看看怎么样呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1