12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- * uart.c
- *
- * Created on: 2019. 5. 27.
- * Author: parkyj
- */
- #include "uart.h"
- UARTQUEUE TerminalQueue;
- UARTQUEUE WifiQueue;
- void InitUartQueue(pUARTQUEUE pQueue)
- {
- pQueue->data = pQueue->head = pQueue->tail = 0;
- }
- void PutDataToUartQueue(UART_HandleTypeDef *huart, uint8_t data)
- {
- pUARTQUEUE pQueue = &TerminalQueue;
- if (pQueue->data >= QUEUE_BUFFER_LENGTH)
- GetDataFromUartQueue(huart);
- pQueue->Buffer[pQueue->head++] = data;
- if (pQueue->head == QUEUE_BUFFER_LENGTH) pQueue->head = 0;
- pQueue->data++;
- }
- void GetDataFromUartQueue(UART_HandleTypeDef *huart)
- {
- UART_HandleTypeDef *dst = (huart->Instance == USART1 ? &hWifi:&hTerminal);
- pUARTQUEUE pQueue = &TerminalQueue;
- buf[uartindex++] = *(pQueue->Buffer + pQueue->tail);
- pQueue->tail++;
- if (pQueue->tail >= QUEUE_BUFFER_LENGTH) pQueue->tail = 0;
- pQueue->data--;
- if(pQueue->data == 0)
- UartDataRecvSet(1);
- HAL_Delay(1);
- }
- void Uart1_Data_Send(uint8_t* data,uint8_t size){
- HAL_UART_Transmit_DMA(&huart1, data,size);
- }
- void Uart3_Data_Send(uint8_t* data,uint8_t size){
- HAL_UART_Transmit_DMA(&huart3, data,size);
- }
|