当前位置:网站首页>3.1 detailed explanation of rtthread serial port device (V1)
3.1 detailed explanation of rtthread serial port device (V1)
2022-07-06 03:25:00 【rou252051452】
1、 A serial port (UART) Equipment description
rtthread adopt serial.c and serial.h Two files are used to manage serial port devices . adopt serial.h Structural body in rt_serial_device Define serial port equipment , The serial port device inherits from the device base class rt_device,rt_device Inherited from rt_object Base class , The inheritance relationship is as follows

The serial port device realizes the function of rt_device Inheritance of device base class , The private member of the structure determines the relevant operations of the serial port device .
struct rt_serial_device
{
struct rt_device parent;
const struct rt_uart_ops *ops;
struct serial_configure config;
void *serial_rx;
void *serial_tx;
};
typedef struct rt_serial_device rt_serial_t;2、 Initialization and registration of serial port devices

Start-up phase rtthread It will be based on whether RT_USING_SERIAL Definition , stay hw_board_init Function to initialize the serial port device , stay rt_hw_usart_init In function DMA And serial port related configuration parameters , Finally call the function rt_hw_serial_register To achieve STM32 Serial port device association and device mounting .
int rt_hw_usart_init(void)
{
/*
Calculate the number of serial port devices
1、drv_uasrt.c The document went on struct stm32_uart Type array uart_obj The definition of ,
The number of arrays has macro definitions BSP_USING_UARTx It's the number of .
*/
rt_size_t obj_num = sizeof(uart_obj) / sizeof(struct stm32_uart);
/*
Assign the default value to the configuration information ,115200-8-n-1
*/
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
rt_err_t result = 0;
/*
According to macro definition DMA Initialization of relevant configuration information
*/
stm32_uart_get_dma_config();
/*
Mount the corresponding serial port peripherals according to the number of serial ports
*/
for (int i = 0; i < obj_num; i++)
{
uart_obj[i].config = &uart_config[i];
uart_obj[i].serial.ops = &stm32_uart_ops;
uart_obj[i].serial.config = config;
/* register UART device */
result = rt_hw_serial_register(&uart_obj[i].serial, uart_obj[i].config->name,
RT_DEVICE_FLAG_RDWR
| RT_DEVICE_FLAG_INT_RX
| RT_DEVICE_FLAG_INT_TX
| uart_obj[i].uart_dma_flag
, NULL);
RT_ASSERT(result == RT_EOK);
}
return result;
}
边栏推荐
- Redis SDS principle
- Svg drag point crop image JS effect
- 这些不太会
- 【paddle】加载模型权重后预测报错AttributeError: ‘Model‘ object has no attribute ‘_place‘
- 指针笔试题~走近大厂
- NR modulation 1
- Erreur de la carte SD "erreur - 110 whilst initialisation de la carte SD
- 施努卡:视觉定位系统 视觉定位系统的工作原理
- [padding] an error is reported in the prediction after loading the model weight attributeerror: 'model' object has no attribute '_ place‘
- Polymorphic day02
猜你喜欢

电机控制反Park变换和反Clarke变换公式推导

Pointer written test questions ~ approaching Dachang

OCR文字识别方法综述

数据分析——seaborn可视化(笔记自用)

The real machine cannot access the shooting range of the virtual machine, and the real machine cannot Ping the virtual machine

Web security SQL injection vulnerability (1)

SAP ALV cell level set color

遥感图像超分辨率论文推荐

2022工作中遇到的问题四

Pytorch基础——(1)张量(tensor)的初始化
随机推荐
jsscript
Teach you to build your own simple BP neural network with pytoch (take iris data set as an example)
jsscript
11. Container with the most water
Tomb. Weekly update of Finance (February 7 - February 13)
【SLAM】lidar-camera外参标定(港大MarsLab)无需二维码标定板
Eight super classic pointer interview questions (3000 words in detail)
Mysqldump data backup
SD card reports an error "error -110 whilst initializing SD card
遥感图像超分辨率论文推荐
Data and Introspection__ dict__ Attributes and__ slots__ attribute
Audio-AudioRecord Binder通信机制
C language judgment, ternary operation and switch statement usage
深入探究指针及指针类型
[Li Kou] the second set of the 280 Li Kou weekly match
1003 emergency (25 points), "DIJ deformation"
Inherit day01
2.2 fonctionnement stm32 GPIO
3857 Mercator coordinate system converted to 4326 (WGS84) longitude and latitude coordinates
An article about liquid template engine