2020-04-23 wb_serial_it 中断方式

                                              wb_serial_tx_it

 串口1发送 中断方式


1) 在wb_ledblink设置基础上

USART1->Mode->Asynchronous

Configuration

注意Parameter settings里面的波特率是115200

NVIC settings->USART1 globe interrupt->enabled

2)SAVE, generate Code

3) main

char mystr1[] = "This is mystr1";

  char str_rn[2] = {'\r','\n'};

  strcat(mystr1,str_rn);

  char mystr2[]="Hello world, this is mystr2";

  strcat(mystr2,str_rn);

  while (1)

  {

    /* USER CODE END WHILE */

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);

  sendingf=1;

  HAL_UART_Transmit_IT(&huart1,&mystr1,strlen(mystr1));

  while(sendingf>0){}

  sendingf=1;

  HAL_UART_Transmit_IT(&huart1,&mystr2,strlen(mystr2));

  while(sendingf>0){}

  HAL_UART_Transmit_IT(&huart1,&str_rn,2);

  HAL_Delay(1000);

    /* USER CODE BEGIN 3 */

  }

  /* USER CODE END 3 */

}

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)   //Tx Transfer completed callbacks.

{

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);

  sendingf=0;

}

4)发送分析

可以在主程序发送一串字符   比如说     HAL_UART_Transmit_IT(&huart1,&mystr, strlen(mystr);

当发送完成产生中断,调用中断函数

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

可以在这个函数中加入led灯熄灭(发送时点亮)



 

你可能感兴趣的:(2020-04-23 wb_serial_it 中断方式)