C6748_UART(5) - UART寄存器

1、FIFO控制寄存器(FCR)
RXFIFTL:接收FIFO中断触发(当FIFO中的数据量刚到达所要求(trigger level)的时候会产生中断);
DMAMODE1:如果FIFO使能的话此位可以使能DMA模式。
TXCLR:发送FIFO清除。
RXCLR:接收FIFO清除。
FIFOEN:FIFO模式使能。
2、队列控制寄存器(LCR)
DLAB:分配锁存访问位。
BC:暂停控制。
SP:强制奇偶校验。
EPS:奇偶校验选择。
PEN:校验使能。
STB:设置产生停止位。
WLS:发送接收字长度,当STB为0,WLS决定停止位的长度。
3、模式控制寄存器
AFE:自动流控使能。
LOOP:回环模式使能。
4、分频锁存寄存器(DLL and DLH)
DLL和DHH分别是分频值得高位和低位。
分配值=UART模块输入时钟频率/波特率/16;
或者:分配值=UART模块输入时钟频率/波特率/13;
5、 电源仿真管理寄存器(PWREMU_MGMT)
  SOFT、FREE:特殊的仿真位。高级语言调试程序中出现一个断点时,该  仿真位决定定时器的状态。如果FREE位设为1,则当遇到一个断点时,定时器继续运行(即自由运行),在这种情况下,SOFT被忽略。但是,如果FREE为0,则SOFT有效。在此情况下,如果SOFT=0,则定时器停止,下一次TIM的值递减;如果SOFT=1,则当TIM减到0,定时器停止工作。
UTRST:UART发送复位。
URRST:UART接收复位。
6、模式定义寄存器(MDR)
  OSM_SEL:0(16倍过采样);1(13倍过采样)

转载于:https://www.cnblogs.com/guojun-junguo/p/9460368.html

怎么使用这个函数初始化串口3HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef huart) { / Check the UART handle allocation / if (huart == NULL) { return HAL_ERROR; } / Check the parameters / if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) { / The hardware flow control is available only for USART1, USART2, USART3 and USART6. Except for STM32F446xx devices, that is available for USART1, USART2, USART3, USART6, UART4 and UART5. / assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); } else { assert_param(IS_UART_INSTANCE(huart->Instance)); } assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); if (huart->gState == HAL_UART_STATE_RESET) { / Allocate lock resource and initialize it / huart->Lock = HAL_UNLOCKED; #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) UART_InitCallbacksToDefault(huart); if (huart->MspInitCallback == NULL) { huart->MspInitCallback = HAL_UART_MspInit; } / Init the low level hardware / huart->MspInitCallback(huart); #else / Init the low level hardware : GPIO, CLOCK / HAL_UART_MspInit(huart); #endif / (USE_HAL_UART_REGISTER_CALLBACKS) / } huart->gState = HAL_UART_STATE_BUSY; / Disable the peripheral / __HAL_UART_DISABLE(huart); / Set the UART Communication parameters / UART_SetConfig(huart); / In asynchronous mode, the following bits must be kept cleared: - LINEN and CLKEN bits in the USART_CR2 register, - SCEN, HDSEL and IREN bits in the USART_CR3 register./ CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); / Enable the peripheral / __HAL_UART_ENABLE(huart); / Initialize the UART state */ huart->ErrorCode = HAL_UART_ERROR_NONE; huart->gState = HAL_UART_STATE_READY; huart->RxState = HAL_UART_STATE_READY; return HAL_OK; }
05-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值