bh7ni 发表于 2024-11-10 12:21:32

菜鸟请教,printf如何重定向 8H8K64U的4个串口

我想使用printf通过 8H8K64U的4个串口分别来发送数据,如何重定向到这4个串口呢,


看到论坛帖子里说是“重写putchar函数, ti和buff 改成串口2,3对应的寄存器就可以了。”

具体是如何重写呢

神农鼎 发表于 2024-11-10 13:30:22



【串口收发框架】【printf重定向】【圆周率计算】 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)

DebugLab 发表于 2024-11-10 14:32:36

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4598

核心代码就这么一段:
void Uart_Printf(unsigned char *v,...)
{
      va_list ap;
      va_start(ap,v);
      while(Uart_Send_Lenth);
      UART_Send(vsprintf(T_Buffer,v,ap));
      va_end(ap);
}

变量格式化后写入数组,
然后用指向这个数组的指针挨个送寄存器就行了,
和正常使用串口是一样的

bh7ni 发表于 2024-11-10 22:04:10

感谢以上二位,我再琢磨琢磨
页: [1]
查看完整版本: 菜鸟请教,printf如何重定向 8H8K64U的4个串口