初级会员

- 积分
- 166
- 金钱
- 166
- 注册时间
- 2013-9-22
- 在线时间
- 18 小时
|

楼主 |
发表于 2014-3-12 08:39:00
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
/****************************************************************************
* 名 称:void USART2_IRQHandler(void)
* 功 能:串口2中断函数,在这里接收主机的数据
* 入口参数:无
* 出口参数:无
* 说 明:
* 调用方法:无
****************************************************************************/
void USART2_IRQHandler(void)
{
unsigned int j;
static unsigned char i=0;
/*当USART接收到数据后进入中断*/
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到数据
{
uart.jieshou[uart.jishu]=USART_ReceiveData(USART2);
uart.jishu++;
if (uart.jishu==1) //当接收到第一个字节时开始计时(计时5MS)
{
uart.flag=1; //接收到第一个字节标志
uart.jishi=0;
}
if (uart.jishu>=1) //当接收一个数据后每中断一次都把计时累加变量清0
{
uart.jishi=0; //清0
}
}
/*当USART数据发送完成后进入中断*/
if(USART_GetITStatus(USART2, USART_IT_TC) != RESET)
{
uart.flag=uart.jishi=uart.jishu=0;
USART_ClearFlag(USART2,USART_FLAG_TC); //清发送完成标志
Delay(300);
GPIO_SetBits(GPIOA,GPIO_Pin_11); //进入接收模式
}
} 这是串口2的中断,串口1的依葫芦画瓢,串口1的就不行 |
|