Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.99 KB | None | 0 0
  1. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  2. {
  3.     if(huart->Instance == USART2)
  4.     {
  5.         EMPTY_RX++;
  6.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  7.         HAL_Delay(100);
  8.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  9.         HAL_Delay(100);
  10.         if(EMPTY_RX >= BUFF_SIZE)
  11.         {
  12.             EMPTY_RX=0;
  13.         }
  14.         HAL_UART_Receive_IT(&huart2, (uint8_t*)&BUFF_RX[EMPTY_RX], 1);
  15.     }
  16. }
  17.  
  18. void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
  19. {
  20.     if(huart->Instance == USART2)
  21.     {
  22.         uint8_t idx = EMPTY_TX;
  23.         __disable_irq();
  24.         if(BUSY_TX == EMPTY_TX && __HAL_UART_GET_FLAG(&huart2, UART_FLAG_TXE) == SET)
  25.         {
  26.             EMPTY_TX = idx;
  27.             uint8_t tmp = BUFF_TX[BUSY_TX];
  28.             BUSY_TX++;
  29.             if(BUSY_TX >= BUFF_SIZE)
  30.                 BUSY_TX = 0;
  31.             HAL_UART_Transmit_IT(&huart2, (uint8_t*)&tmp, 1);
  32.         }
  33.         else
  34.         {
  35.             EMPTY_TX = idx;
  36.         }
  37.         __enable_irq();
  38.     }
  39.  
  40. }
  41.  
  42. void send()
  43. {
  44.     uint8_t idx = EMPTY_TX;
  45.     for(int i=0; i<5; i++)
  46.     {
  47.         BUFF_TX[idx] = 0x41;
  48.         idx++;
  49.         if(idx >= BUFF_SIZE)
  50.             idx=0;
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement