stm32f103 使用HAL库printf打印串口(串口发送设置为DMA发送方式)的问题

stm32f103 使用HAL库printf打印串口(串口发送设置为DMA发送方式)该怎么写,谁有可以参考的代码?

网上找到一堆参考代码都是printf打印串口(串口采用的是直接发送方式,不是DMA的方式)

已邀请:

admin

赞同来自: pengzaiqin

print()函数里面用的是不定长发送.所以是直接一个字节一个字节发...

用dma你要不定长发送?还是每次只发一个字节?

蓝天云海

赞同来自:

//main.c里面添加如下代码,huart1改为你要用的窗口号
#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* 使用的串口可根据实际配置修改 */
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
  return ch;
}

yunhuisong

赞同来自: admin

可以自己写一个发送函数。建一个缓冲区,要发送到字节复制进去后,根据长度启动DMA

SeitなKreuzung

赞同来自:

楼主 你好  请问这个问题解决了吗

要回复问题请先登录注册