新手入门
- 积分
- 1
- 金钱
- 1
- 注册时间
- 2020-3-17
- 在线时间
- 1 小时
|
4金钱
本帖最后由 Z2941815929 于 2020-3-17 20:15 编辑
求老哥帮帮忙,程序中,人体感应和蓝牙起冲突了,比如人离开人体感应范围远程蓝牙开灯开不了,断开蓝牙之后人体感应没作用了。我现在想当连接蓝牙的时候蓝牙控制,没连接蓝牙的时候人体感应控制。这应该怎么写?求大神帮帮忙。蓝牙控制直接在串口里面改的。
void USART1_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //½óêÕÖD¶Ï
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
Res=USART_ReceiveData(USART1);
USART_SendData(USART1,Res);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
delay_ms(100);
switch(Res)
{
case '1' ://开灯
b=1;
a=50;
TIM_SetCompare2(TIM4,10000);
TIM_Cmd(TIM4, ENABLE);
break;
case '2' ://关灯
b=2;
TIM_SetCompare2(TIM4,20000);
break;
case '3'://自动
printf("%d\n",a);
b=0;
break ;
case '4':
a+=10;
if(a>=90){a=90;}
printf("%d\n",a);
break ;
case '5':
a-=10;
if(a<=10){a=10;}
printf("%d\n",a);
break ;
}
}
USART_RX_STA=0;
}
这是人体感应的程序
void response_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
u8 response_Statue(void)
{
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)==1)
{
return 1;
}
return 2;
}
主程序不知道怎么写才能让它们不冲突,求老哥帮帮忙,谢谢
|
|