CIU32_L051_M307R/drivers/inc/drv_uart.h

104 lines
3.1 KiB
C
Raw Normal View History

/***
* @Author: mbw
* @Date: 2024-08-20 15:51:16
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-09-20 10:06:56
* @FilePath: \USART1_Interrupt - RT-Thread\drivers\inc\drv_uart.h
* @Description:
* @
* @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
*/
/************************************************************************************************/
/**
* @file usart_bsp.h
* @author MCU Ecosystem Development Team
* @brief USART BSPͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/* <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD> */
#ifndef USART_BSP_H
#define USART_BSP_H
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------includes--------------------------------------------*/
#include <rtthread.h>
#include <rthw.h>
#include "lwrb.h"
typedef enum
{
kCheck0Stop1 = 0U,
kCheck0Stop2,
kCheckOdd,
kCheckEven
} TeUsartParityMode;
/*------------------------------------------USART1---------------------------------------------*/
#define UART1_RX_THREAD_STACK_SIZE (640)
2024-09-14 16:50:58 +08:00
#define UART1_RX_THREAD_PRIORITY (20)
#define UART1_RX_THREAD_TIMESLICE (5)
#define UART1_RX_BUFFER_LENGTH (128U)
#define UART1_RX_RB_LENGTH (128U)
#define UART1_TX_RB_LENGTH (896U)
#define UART1_DMA_RX_CHANNEL DMA_CHANNEL_0
#define UART1_DMA_TX_CHANNEL DMA_CHANNEL_1
#define UART1_DMA_RX_IRQ_CHANNEL DMA_Channel0_IRQn
#define UART1_DMA_TX_IRQ_CHANNEL DMA_Channel1_IRQn
rt_uint32_t UART1_Write(const void* data, size_t len);
rt_uint32_t UART1_SendString(const char* str);
2024-09-14 16:50:58 +08:00
/*-------------------------------------------UART2-------------------------------------------------*/
#define UART2_RX_BUFFER_LENGTH (64U)
#define UART2_RX_RB_LENGTH (128U)
/*-------------------------------------------UART3-------------------------------------------------*/
#define UART3_RX_BUFFER_LENGTH (256U)
#define UART3_RX_RB_LENGTH (128U)
#define UART3_TX_RB_LENGTH (256U)
/*-------------------------------------------LPUART1-------------------------------------------------*/
#define LPUART1_RX_BUFFER_LENGTH (16U)
#define LPUART1_RX_RB_LENGTH (16U)
#define LPUART1_TX_RB_LENGTH (128U)
extern lwrb_t lpuart1_rx_rb;
extern lwrb_t uart1_rx_rb;
2024-09-14 16:50:58 +08:00
extern lwrb_t uart2_rx_rb;
extern lwrb_t uart3_rx_rb;
#ifdef DEBUG_OUTPUT_SELECT
extern rt_sem_t uart1_rx_ok_sem;
#endif
rt_uint32_t LPUART1_Write(const void* data, size_t len);
rt_uint32_t LPUART1_SendString(const char* str);
2024-09-14 16:50:58 +08:00
/*-------------------------------------------functions------------------------------------------*/
int rt_hw_usart_init(void);
2024-09-14 16:50:58 +08:00
void UART2_Init(uint32_t baudrate, uint32_t par);
void LPUART1_Init(uint32_t baudrate, uint32_t par);
#ifdef __cplusplus
}
#endif
#endif /* USART_BSP_H */