/*.c文件*/
#include "hal_uart.h"
/******************************************************************************
钢铁侠出品
qq:1036839164
抖音号:202937710
本程序只供学习使用,未经作者许可,不得用于其它任何用途
版本:V1.0
版权所有,盗版必究。
绍兴科立新电子科技有限公司
All rights reserved
********************************************************************************
*/
#define HAL_UART_CLK_PCLK (0u<<11)/*PCLK时钟*/
#define HAL_UART_CLK_XTL (2u<<11)/*外部低速晶振*/
#define HAL_UART_CLK_RCL (3u<<11)/*内部低速晶振*/
#define HAL_SAMPLE_CLK_DIV32 0U /*模式0无效,模式1/3为16分频,模式2为32分频*/
#define HAL_SAMPLE_CLK_DIV16 0X200U /*模式0无效,模式1/3为8分频,模式2为16分频*/
#define HAL_SAMPLE_CLK_DIV8 0X400U /*模式0无效,模式1/3为4分频,模式2为8分频*/
#define HAL_UART_MODE0 0x00u /*模式0*/
#define HAL_UART_MODE1 0x40u /*模式1*/
#define HAL_UART_MODE2 0x80u /*模式2*/
#define HAL_UART_MODE3 0xC0u /*模式3*/
typedef struct
{
uint32_t sclk_sel; /*传输时钟源选择*/
uint32_t sclk_div_sel;/*采样分频选择 */
uint32_t sclk; /*sclk*/
uint32_t baud_rate; /* 波特率*/
} sUartBaudPara;
typedef struct
{
uint32_t run_mode; /*四种模式配置*/
uint32_t parity; /*校验模式*/
uint32_t stop_bits; /*停止位长度 */
sUartBaudPara baud_para; /*Mode1/3波特率配置 */
} sUartCfg;
static uint8_t UartTransmitSet(sHalUartTypeDef* uart_reg,