初级会员

- 积分
- 123
- 金钱
- 123
- 注册时间
- 2021-7-21
- 在线时间
- 58 小时
|
1金钱
串口2中断函数如下:
void USART2_IRQHandler(void)
{
char res;
int i;
//char tmp;
if (USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET)//
{
USART_ClearFlag(USART2, USART_FLAG_ORE); //清除只读标志位
USART_ReceiveData(USART2); //从SR读取数据
}
if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=RESET)
{
LED_ON;
//delay_us(10);
res=USART_ReceiveData(USART2); //USART2->DR
//printf("UASRT2_data====\r\n");
// printf("\r\n");
//tmp=ChangeNum(&res,sizeof(res));
if(RS485_RX_CNT<128) //一次只能最多接收128个字节,人为设定,可以更大,但浪费时间
{
RS485_RX_BUF[RS485_RX_CNT]=res; //记录接收到的值
RS485_RX_CNT++; //使收数据增加1
}
for(i=0;i<RS485_RX_CNT;i++)
{
printf("%02X",RS485_RX_BUF);
//
}
}
}
|
|