新手入门
- 积分
- 15
- 金钱
- 15
- 注册时间
- 2022-4-22
- 在线时间
- 5 小时
|
5金钱
extern uint8_t Rxbuffer[100];
extern uint8_t RxCounter;
extern uint8_t ReceiveState;
void USART3_IRQHandler(void) //串口1中断服务程序
{
uint8_t Clear=Clear;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) //接收中断
{
Rxbuffer[RxCounter]=USART_ReceiveData(USART3);
RxCounter++;
if(RxCounter == MAX_BUFFER)
{
RxCounter=0;
}
}
else if (USART_GetITStatus(USART3, USART_IT_IDLE) != RESET)
Clear=USART3->SR;
Clear=USART3->DR;
ReceiveState=1;
}
//发送函数
volatile uint8_t Rxbuffer[100]={0x00};
volatile uint8_t RxCounter=0;
volatile uint8_t ReceiveState=0;
while(1)
{
//串口3发送给串口4
if(ReceiveState==1)
{
ReceiveState=0;
a=0;
while(RxCounter--)
{
USART_SendData(UART4,Rxbuffer[a++]);
while(USART_GetFlagStatus(UART4,USART_FLAG_TC)!=SET);
}
RxCounter=0;
}
|
|