新手入门
- 积分
- 9
- 金钱
- 9
- 注册时间
- 2019-3-6
- 在线时间
- 1 小时
|

楼主 |
发表于 2019-3-6 16:10:14
|
显示全部楼层
[mw_shl_code=c,true]int USART3_IRQHandler(void)
{
if(USART3->SR&(1<<5))//接收到数据
{
u8 temp;
static u8 count,last_data,last_last_data,Usart_ON_Count;
flag_send=0;
if(Usart_ON_Flag==0)
{
if(++Usart_ON_Count>10)Usart_ON_Flag=1; //超过10次进入串口接收中断,使能串口控制
}
temp=USART3->DR; //读取接收寄存器的值
usart3_send(temp); //将读取到的数据发送过去
if(Usart_Flag==0)
{
if(last_data==0xfe&&last_last_data==0xff) //数据头
Usart_Flag=1,count=0;
}
if(Usart_Flag==1)
{
Urxbuf[count]=temp; //依次采集数据
count++;
if(count==8){Usart_Flag=0;}
}
last_last_data=last_data; //保存上上次的数据
last_data=temp; //保存上次的数据
}
//return 0;
}[/mw_shl_code] |
|