初级会员

- 积分
- 52
- 金钱
- 52
- 注册时间
- 2022-6-23
- 在线时间
- 15 小时
|

楼主 |
发表于 2022-8-4 11:40:10
|
显示全部楼层
想问下大家,中断接收我用的正点原子的程序,下面是主程序,麻烦兄弟们帮我看看
if(USB_USART_RX_STA&0x8000)
{
len1=USB_USART_RX_STA&0x3FFF;//得到此次接收到的数据长度
if(USB_USART_RX_BUF[0]==0x8f)
{
HAL_UART_Transmit_IT(&huart2,(uint8_t*)USB_USART_RX_BUF,len1);
while(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_TC)!=SET); //等待发送结束
HAL_Delay(10);//发送数据前要有个延时
len2=USART_RX_STA&0x3FFF;
CDC_Transmit_HS(USART_RX_BUF, len2);
// if(USB_USART_RX_BUF[1]==0x72){
// for(i=0;i<len1;i++){
// RxBuffer2_1[i]=USB_USART_RX_BUF[i];
// }
// }
USART_RX_STA=0;//将串口寄存器清空,不然串口发送时一直是上次的数据
USB_USART_RX_STA=0;
}
else if(USB_USART_RX_BUF[0]==0xef){//激光器按照原命令执行
//usb_printf("\r\n您发送的消息长度为:%d\r\n\r\n",len1);
HAL_UART_Transmit_IT(&huart4,(uint8_t*)USB_USART_RX_BUF,len1);
while(__HAL_UART_GET_FLAG(&huart4,UART_FLAG_TC)!=SET); //等待发送结束
HAL_Delay(10);//发送数据前要有个延时
len2=USART_RX_STA&0x3FFF;
CDC_Transmit_HS(USART_RX_BUF, len2);
USART_RX_STA=0;
USB_USART_RX_STA=0;
} |
|