未央 发表于 2023-3-2 15:16:59

FM33LG025低功耗串口问题

if((FL_ENABLE == FL_LPUART_IsEnabledIT_RXBuffFull(LPUART2))
            && (FL_SET == FL_LPUART_IsActiveFlag_RXBuffFull(LPUART2)))      //接收数据中断
    {
      temp = FL_LPUART_ReadRXBuff(LPUART2);                               //接收数据
//      FL_LPUART_WriteTXBuff(LPUART2, temp);
      FL_LPUART_WriteTXBuff(LPUART2, 0x30);
      FL_LPUART_WriteTXBuff(LPUART2, 0x31);
      FL_LPUART_WriteTXBuff(LPUART2, 0x32);
      FL_LPUART_WriteTXBuff(LPUART2, 0x33);
      FL_LPUART_WriteTXBuff(LPUART2, 0x0d);
      FL_LPUART_WriteTXBuff(LPUART2, 0x0a);
      
      FL_LPUART_ClearFlag_RXBuffFull(LPUART2);
    }收到什么就发什么可以正常发,但是像代码那样发其他的数据就会有问题
这里应该收到的是“0123\r\n”的但只发出来了第一个数据,
后面的数据都丢了,看波形也是只有第一个字节有波形,发完第一个字节后就一直是高电平了

直接把这一段代码放main函数的死循环里发能全发出来但是数据顺序是乱的

这样能发啥回啥,不丢数据


顾博文 发表于 2023-3-14 10:48:56

你往buf里面写,单片机去发送,单片机还没发送完,你又去写,直接导致没法送完就被覆盖。 请参考查询发送例程
页: [1]
查看完整版本: FM33LG025低功耗串口问题