OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3455|回复: 1

串口接收问题,第一个字符是前一次数据的最后一个,求助!

[复制链接]

21

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-4-16
在线时间
14 小时
发表于 2018-8-3 10:28:43 | 显示全部楼层 |阅读模式
6金钱
第一次发送:K2345678901234567890123456789012345678901234567890123456789B
第一次接收:空K2345678901234567890123456789012345678901234567890123456789
第二次发送:A2345678901234567890123456789012345678901234567890123456789L
第二次接收:BA2345678901234567890123456789012345678901234567890123456789

void USART3_IRQHandler(void)
{
        u8 Res;
        if((__HAL_UART_GET_FLAG(&USART3_Handler,UART_FLAG_RXNE)!=RESET))
        {
                 HAL_UART_Receive(&USART3_Handler,&ch3,1,10);
//                 if(ch3 != 0 || z != 0)   
                 temp_data[z ++] = ch3;
                 if(z == 60)
                 {
                                 usart3_send_bytes(temp_data,60);
//                                memcpy(wifi_down_data,temp_data,z);
                                memset(temp_data,0,sizeof(temp_data));
                                z = 0;
                                wifi_order_come_flag = 1;
                 }       
//               
                HAL_UART_IRQHandler(&USART3_Handler);
//                while (HAL_UART_GetState(&USART3_Handler) != HAL_UART_STATE_READY);//μè′y¾íD÷
                while(HAL_UART_Receive_IT(&USART3_Handler,  (u8 *)&ch3, 1) != HAL_OK);
        }

}

     USART3_Handler.Instance=USART3;                                            //USART3
        USART3_Handler.Init.BaudRate=bound;                                    //2¨ìØÂê
        USART3_Handler.Init.WordLength=UART_WORDLENGTH_8B;       
        USART3_Handler.Init.StopBits=UART_STOPBITS_1;               
        USART3_Handler.Init.Parity=UART_PARITY_NONE;               
        USART3_Handler.Init.HwFlowCtl=UART_HWCONTROL_NONE;       
        USART3_Handler.Init.Mode=UART_MODE_TX_RX;                          
       
//        __HAL_UART_DISABLE_IT(&USART3_Handler,UART_IT_TC);
        __HAL_UART_ENABLE_IT(&USART3_Handler,UART_IT_RXNE);               
        HAL_NVIC_EnableIRQ(USART3_IRQn);                               
        HAL_NVIC_SetPriority(USART3_IRQn,3,3);                       
        HAL_UART_Init(&USART3_Handler);                                            


        HAL_UART_Receive_IT(&USART3_Handler, (u8 *)&ch3, 1);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-4-16
在线时间
14 小时
 楼主| 发表于 2018-8-3 14:15:33 | 显示全部楼层
貌似是库函数的问题,但不确定出在哪里????改成中断里直接读寄存器就好了,郁闷
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表