|
- #ifndef _USART_H
- #define _USART_H
-
- #include "stm32f4xx.h"
- /*
- *1:定义STM32F103Cxxx三个串口
- *0:定义STM32F103xxxx五个串口
- *无定义默认使用三个串口
- */
- #define USE_STM32F103_Cxxx 0
-
- #define TURE 1
- #define FALSE 0
-
-
- /* DMA */
- #define USART_DR_BASE (USART1_BASE+0x04)
-
- #define USART_TX_DMA_CLK RCC_AHB1Periph_DMA2
- #define USART_TX_DMA_CHANNEL DMA_Channel_4
- #define USART_TX_DMA_STREAM DMA2_Stream7
-
- #define USART_RX_DMA_CLK RCC_AHB1Periph_DMA2
- #define USART_RX_DMA_CHANNEL DMA_Channel_4
- #define USART_RX_DMA_STREAM DMA2_Stream5
-
-
- /* 串口外设 */
- typedef struct USART {
- char *name;
- int (*usart_init)(struct USART *pDev, uint32_t BaudRate, uint16_t DataBit, float StopBit, uint16_t Parity);
- void (*usart_deinit)(struct USART *pDev);
- void (*usart_send)(struct USART *pDev, uint8_t *data, uint16_t dataLenght);
- int (*usart_print)(struct USART *pDev, uint32_t timeout_ms, char *format, ...);
- int (*usart_receive)(struct USART *pDev, uint8_t *data, uint16_t data_len, uint16_t *rec_br, uint32_t timeout_ms);
- uint32_t(*usart_wait_message_count)(struct USART *pDev);
- void *usart_priv_data;
- } usart_obj_t;
-
- /* 获取串口外设句柄 */
- usart_obj_t *get_usart_obj(char *name);
-
- #endif
|