打印
[应用相关]

stm8s003串口中断方式只能接收两个字节

[复制链接]
1016|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2022-1-4 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬,uart1 发送一串数据到串口助手没有问题,用串口助手向stm8s发送字符串,不知道为什么一次只能读到2个字节,单个字节收发都没问题,接收采用中断方式,代码如下Init(){

        UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,
              UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
        UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
        UART1_Cmd(ENABLE);
        enableInterrupts();


}


void UART1_RecvData(void)
{
        if(UART1_GetITStatus(UART1_IT_RXNE) != RESET)
                RecvData[count++] = UART1_ReceiveData8();
          UART1_ClearITPendingBit(UART1_IT_RXNE);
}

使用特权

评论回复
沙发
xch| | 2022-1-4 11:39 | 只看该作者
UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE); //搞错了?OR 是接收溢出才中断,所以收到两个字节。 UART1_RIEN 应该置一。

使用特权

评论回复
板凳
xch| | 2022-1-4 11:39 | 只看该作者
UART1_ClearITPendingBit(UART1_IT_RXNE); //多余

使用特权

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

本版积分规则

554

主题

2392

帖子

4

粉丝