新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2017-11-17
- 在线时间
- 4 小时
|
5金钱
写得简单,最后一个字符是#就表示接收完成。
void USART1_IRQHandler(void)
{
u16 tem;
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
{
tem=USART_ReceiveData(USART1);
if(UsartFlag==0)//接收完成标志位
{
buf[i]=tem;
i++;
BufLenth++;//缓冲区长度
if(buf[--i]=='#')
{
UsartFlag=1;
i=0;
}
if(i>63)
{
UsartFlag=0;
BufLenth=0;
i=0;
}
}
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
}
}
int main(void)
{
u16 i;
delay_init();
LED_Init();
KEY_Init();
Uart_Init();
while(1)
{
if(UsartFlag==1)
{
for(i=0;i<BufLenth;i++)
{
USART_SendData(USART1,buf[i]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
UsartFlag=0;
BufLenth=0;
}
}
}
|
|