关于stm32cube串口发送程序

2019-07-20 14:12发布

这程序在网上研究了好一阵,基本没有直接能用的,好不容易改写了一套程序,现在只能发乱码。程序如下
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
#include "stdio.h"  
#ifdef __GNUC__  
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)  
#else  
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  
#endif /* __GNUC__ */  
__IO ITStatus USART1Ready = RESET;  

PUTCHAR_PROTOTYPE  
{  
    HAL_UART_Transmit_IT(&huart1 , (uint8_t *)&ch, 1);  
    while (USART1Ready != SET)  
  {  
  }  
    USART1Ready = RESET;  
    return ch;  
//}  
/* USER CODE END PV */



int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */
printf ("a");
  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}


gnuc的那段#ifdef到#endif,我知道这段格式该怎么阅读,但不明白这段函数在干什么,求大神讲讲。再就是有没有做过串口发送的,我现在只是想用串口发送某数组的内容,能用dma最好,我看usart.c里面主要就void MX_USART1_UART_Init(void),不知道用什么函数能实现串口发送
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。