Files
LoRaWAN_Project/Inc/mcu/usart.h
2024-11-10 16:25:19 +08:00

153 lines
5.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
* File Name : USART.h
* Description : This file provides code for the configuration
* of the USART instances.
******************************************************************************
*
* COPYRIGHT(c) 2017 STMicroelectronics
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __usart_H
#define __usart_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32l4xx_hal.h"
#include "main.h"
/*-------------<2D><><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>º궨<C2BA><EAB6A8><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>ʵ<EFBFBD><CAB5>---------------*/
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڷ<EFBFBD><DAB7>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ij<EFBFBD><C4B3>ȷ<EFBFBD><C8B7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define UART_TO_MODULE_WRITE_DATA(buffer, size) lpusart1_send_data(buffer, size)
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڷ<EFBFBD><DAB7>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>\0<><30><EFBFBD><EFBFBD> */
#define UART_TO_LRM_WRITE_STRING(buffer) lpusart1_send_string(buffer)
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڽ<EFBFBD><DABD>ջ<EFBFBD><D5BB>壬Ŀǰ<C4BF><C7B0><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>жϼ<D0B6>BUFFER<45><52><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>FIFO<46><4F>ʽ */
#define UART_TO_LRM_RECEIVE_BUFFER LPUsart1_RX.RX_Buf
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݵı<DDB5><C4B1><EFBFBD> */
#define UART_TO_LRM_RECEIVE_FLAG LPUsart1_RX.receive_flag
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڱ<EFBFBD><DAB1>ν<EFBFBD><CEBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> */
#define UART_TO_LRM_RECEIVE_LENGTH LPUsart1_RX.rx_len
/*==========================END OF LPUART1 CONFIG================================*/
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڷ<EFBFBD><DAB7>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ij<EFBFBD><C4B3>ȷ<EFBFBD><C8B7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define UART_TO_PC_WRITE_DATA(buffer, size) usart2_send_data(buffer, size)
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڷ<EFBFBD><DAB7>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>\0<><30><EFBFBD><EFBFBD> */
#define UART_TO_PC_WRITE_STRING(buffer) usart2_send_string(buffer)
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڽ<EFBFBD><DABD>ջ<EFBFBD><D5BB>壬Ŀǰ<C4BF><C7B0><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>жϼ<D0B6>BUFFER<45><52><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>FIFO<46><4F>ʽ */
#define UART_TO_PC_RECEIVE_BUFFER Usart2_RX.RX_Buf
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݵı<DDB5><C4B1><EFBFBD> */
#define UART_TO_PC_RECEIVE_FLAG Usart2_RX.receive_flag
/** <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĴ<D3B5><C4B4>ڱ<EFBFBD><DAB1>ν<EFBFBD><CEBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> */
#define UART_TO_PC_RECEIVE_LENGTH Usart2_RX.rx_len
/*==========================END OF USART2 CONFIG================================*/
/* USER CODE BEGIN Private defines */
#define RECEIVELEN 1024
#define USART_DMA_SENDING 1
#define USART_DMA_SENDOVER 0
typedef struct
{
uint8_t receive_flag;
uint8_t dmaSend_flag;
uint16_t rx_len;
uint8_t RX_Buf[RECEIVELEN];
} usart_recv_t;
extern usart_recv_t Usart1_RX;
extern usart_recv_t Usart2_RX;
extern usart_recv_t LPUsart1_RX;
/* USER CODE END Private defines */
void MX_LPUART1_Init(uint32_t baudrate);
void MX_USART2_Init(uint32_t baudrate);
void MX_USART1_UART_Init(uint32_t baudrate);
/* USER CODE BEGIN Prototypes */
void usart2_send_byte(uint8_t data);
void usart2_send_data(uint8_t *pdata, uint16_t length);
void usart2_send_string(uint8_t *str);
void usart2_send_onenumber(uint8_t data);
void usart2_send_numbers(uint8_t data);
void USART2_Clear_IT(void);
void usart2_receive_idle(void);
void lpusart1_send_byte(uint8_t data);
void lpusart1_send_data(uint8_t *pdata, uint16_t length);
void lpusart1_send_string(uint8_t *pdata);
void lpusart1_receive_idle(void);
void LPUART1_Clear_IT(void);
void lpuart1_reconfig(uint32_t baudrate);
void PrepareLPUARTToStopMode(void);
void debug_printf(char *fmt, ...);
/* USER CODE END Prototypes */
void Usart1Receive_IDLE(void);
void Usart1SendData(uint8_t *pdata, uint16_t Length);
void UART1_SendByte(uint8_t data);
void USART1_SendString(uint8_t *str);
void Clear_UART1_IT(void);
#ifdef __cplusplus
}
#endif
#endif /*__ usart_H */
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/