打印
[应用相关]

STM32程序进入循环后单片机串口不工作

[复制链接]
811|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-7-10 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
移植的是正点原子的ESP8266代码,在进入while(1)之前可以接收到从串口助手发送的消息,进入while(1)之后就接收不到了,接收中断函数如下
void ATK_MW8266D_UART_IRQHandler(void)
{
uint8_t tmp;
if (__HAL_UART_GET_FLAG(&g_uart_handle, UART_FLAG_ORE) != RESET) /* UART接收过载错误中断 /
{
__HAL_UART_CLEAR_OREFLAG(&g_uart_handle); / 清除接收过载错误中断标志 /
(void)g_uart_handle.Instance->SR; / 先读SR寄存器,再读DR寄存器 */
(void)g_uart_handle.Instance->DR;
// printf("debug");
}

if (__HAL_UART_GET_FLAG(&g_uart_handle, UART_FLAG_RXNE) != RESET)       /* UART接收中断 */
{
    HAL_UART_Receive(&g_uart_handle, &tmp, 1, HAL_MAX_DELAY);           /* UART接收数据 */
   
    if (g_uart_rx_frame.sta.len < (ATK_MW8266D_UART_RX_BUF_SIZE - 1))   /* 判断UART接收缓冲是否溢出
                                                                         * 留出一位给结束符'\0'
                                                                         */
    {
        g_uart_rx_frame.buf[g_uart_rx_frame.sta.len] = tmp;             /* 将接收到的数据写入缓冲 */
        g_uart_rx_frame.sta.len++;                                      /* 更新接收到的数据长度 */
// printf("debug1");
}
else /* UART接收缓冲溢出 /
{
g_uart_rx_frame.sta.len = 0; / 覆盖之前收到的数据 /
g_uart_rx_frame.buf[g_uart_rx_frame.sta.len] = tmp; / 将接收到的数据写入缓冲 /
g_uart_rx_frame.sta.len++; / 更新接收到的数据长度 */
}
// printf("debug2");
//printf("%s",g_uart_rx_frame.buf);
}

if (__HAL_UART_GET_FLAG(&g_uart_handle, UART_FLAG_IDLE) != RESET)       /* UART总线空闲中断 */
{
    g_uart_rx_frame.sta.finsh = 1;                                      /* 标记帧接收完成 */
// printf("debug3");
// printf("%s",g_uart_rx_frame.buf);
__HAL_UART_CLEAR_IDLEFLAG(&g_uart_handle); /* 清除UART总线空闲中断 */
}
}

使用特权

评论回复
沙发
盗铃何须掩耳| | 2024-7-11 14:54 | 只看该作者
while循环里面有啥

使用特权

评论回复
板凳
两只袜子| | 2024-7-12 15:00 | 只看该作者
检查时钟配置

使用特权

评论回复
地板
cr315| | 2024-7-12 15:00 | 只看该作者
可能是硬件上的问题。

使用特权

评论回复
5
hehhehee| | 2024-7-26 14:41 | 只看该作者
在STM32移植正点原子的ESP8266代码时,进入 while(1) 后串口接收不到数据可能是因为接收中断处理不当或中断优先级的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1522

主题

4615

帖子

6

粉丝