久久精品国产精品国产一区,少妇扒开毛毛自慰喷水,国产精品无码电影在线观看 ,久久天天躁夜夜躁狠狠85麻豆

思澈科技軟件開(kāi)發(fā)工具包  2.20
UART

串口(UART)模塊提供了一種靈活的方式,可以與需要行業(yè)標(biāo)準(zhǔn) NRZ 異步串行數(shù)據(jù)格式的外部設(shè)備進(jìn)行全雙工數(shù)據(jù)交換。 UART 使用可編程波特率發(fā)生器提供非常廣泛的波特率范圍。它支持調(diào)制解調(diào)器操作 (CTS/RTS) 和 DMA(直接存儲(chǔ)器訪問(wèn))以進(jìn)行高速通信。

UART主要特點(diǎn)

  • 可配置 16 或 8 的過(guò)采樣方法,以在速度和時(shí)鐘容差之間提供靈活性。
  • 高達(dá) 3 Mbit/s 的通用可編程發(fā)送和接收波特率
  • 可編程數(shù)據(jù)字長(zhǎng)(7、8 或 9 位)
  • 可配置的停止位(1 或 2 個(gè)停止位)
  • 使用 DMA 的連續(xù)通信
  • 通信控制/錯(cuò)誤檢測(cè)標(biāo)志
  • 奇偶校驗(yàn)控制:發(fā)送奇偶校驗(yàn)位,檢查接收數(shù)據(jù)字節(jié)的奇偶校驗(yàn)

請(qǐng)注意,SiFli 芯片組中的 UART FIFO 大小為 1 個(gè)字節(jié)。 強(qiáng)烈建議在 RX 方向使用 DMA。

使用UART

以下示例顯示了 UART TX 和 RX。 UART DMA 的使用,請(qǐng)參考 RTOS Sifli BSP 文件夾(rtos/rtthread/bsp/sifli/drivers)中的 drv_usart.c 為例。

{
#include "bf0_hal.h"
void USART4_IRQHandler(void) // Implement for UART interrupt handler
{
if ((__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_RXNE) != RESET) &&
(__HAL_UART_GET_IT_SOURCE(&(uart->handle), UART_IT_RXNE) != RESET))
printf("Get UART %c", __HAL_UART_GETC(&(uart->handle)));
}
...
UART_HandleTypeDef UartHandle;
UartHandle.Instance = USART4;
UartHandle.Init.BaudRate = 1000000;
UartHandle.Init.Parity = UART_PARITY_ODD;
UartHandle.Init.Mode = UART_MODE_TX_RX;
if (UartHandle.Init.Parity)
UartHandle.Init.WordLength = UART_WORDLENGTH_9B; // If parity is odd/even, parity should +1
if (HAL_UART_Init(&UartHandle) == HAL_OK) // Initialize UART
{
HAL_UART_Transmit(&UartHandle, "UART Tx example", 15, 0xFFFF); // UART TX
}
NVIC_EnableIRQ(USART4_IRQn); // Enable UART interrupt
__HAL_UART_ENABLE_IT(&(uart->handle), UART_IT_RXNE); // Enable UART RXNE interrupt source.
// Type on other side of UART will trigger UART interrupt for RX.
...
}
UART_OVERSAMPLING_16
#define UART_OVERSAMPLING_16
Definition: bf0_hal_uart.h:434
UART_HWCONTROL_NONE
#define UART_HWCONTROL_NONE
Definition: bf0_hal_uart.h:404
UART_WORDLENGTH_9B
#define UART_WORDLENGTH_9B
Definition: bf0_hal_uart.h:371
HAL_OK
@ HAL_OK
Definition: bf0_hal_def.h:75
UART_MODE_TX_RX
#define UART_MODE_TX_RX
Definition: bf0_hal_uart.h:417
__HAL_UART_GET_FLAG
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified UART flag is set or not.
Definition: bf0_hal_uart.h:960
UART_InitTypeDef::Mode
uint32_t Mode
Definition: bf0_hal_uart.h:109
UART_InitTypeDef::BaudRate
uint32_t BaudRate
Definition: bf0_hal_uart.h:80
HAL_UART_Init
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
Initialize the UART mode according to the specified parameters in the UART_InitTypeDef and initialize...
__UART_HandleTypeDef
UART handle Structure definition.
Definition: bf0_hal_uart.h:236
__HAL_UART_ENABLE_IT
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified UART interrupt.
Definition: bf0_hal_uart.h:984
UART_FLAG_RXNE
#define UART_FLAG_RXNE
Definition: bf0_hal_uart.h:751
__UART_HandleTypeDef::Instance
USART_TypeDef * Instance
Definition: bf0_hal_uart.h:237
UART_InitTypeDef::HwFlowCtl
uint32_t HwFlowCtl
Definition: bf0_hal_uart.h:112
UART_InitTypeDef::StopBits
uint32_t StopBits
Definition: bf0_hal_uart.h:99
__HAL_UART_GETC
#define __HAL_UART_GETC(__HANDLE__)
Get byte in FIFO.
Definition: bf0_hal_uart.h:1199
__UART_HandleTypeDef::Init
UART_InitTypeDef Init
Definition: bf0_hal_uart.h:239
UART_InitTypeDef::Parity
uint32_t Parity
Definition: bf0_hal_uart.h:102
UART_InitTypeDef::WordLength
uint32_t WordLength
Definition: bf0_hal_uart.h:96
UART_STOPBITS_1
#define UART_STOPBITS_1
Definition: bf0_hal_uart.h:384
UART_IT_RXNE
#define UART_IT_RXNE
Definition: bf0_hal_uart.h:781
UART_WORDLENGTH_8B
#define UART_WORDLENGTH_8B
Definition: bf0_hal_uart.h:370
UART_PARITY_ODD
#define UART_PARITY_ODD
Definition: bf0_hal_uart.h:396
UART_InitTypeDef::OverSampling
uint32_t OverSampling
Definition: bf0_hal_uart.h:116
__HAL_UART_GET_IT_SOURCE
#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Check whether the specified UART interrupt source is enabled or not.
Definition: bf0_hal_uart.h:1061
HAL_UART_Transmit
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Send an amount of data in blocking mode.