CIU32_L051_M307R/drivers/inc/drv_uart.h

108 lines
3.2 KiB
C

/***
* @Author: mbw
* @Date: 2024-08-20 15:51:16
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-09-20 14:29: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头文件。
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/* 避免头文件重复引用 */
#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)
#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);
/*-------------------------------------------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;
extern lwrb_t uart2_rx_rb;
extern lwrb_t uart3_rx_rb;
#ifdef DEBUG_OUTPUT_SELECT
extern rt_sem_t uart1_rx_ok_sem;
extern struct rt_semaphore uart3_rx_sem;
#endif
rt_uint32_t LPUART1_Write(const void* data, size_t len);
rt_uint32_t LPUART1_SendString(const char* str);
/*-------------------------------------------functions------------------------------------------*/
int rt_hw_usart_init(void);
void UART2_Init(uint32_t baudrate, uint32_t par);
void LPUART1_Init(uint32_t baudrate, uint32_t par);
rt_uint32_t UART3_Write(const void *data, size_t len);
rt_uint32_t UART3_Read(void *buf, size_t len);
#ifdef __cplusplus
}
#endif
#endif /* USART_BSP_H */