Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[doxygen] add driver example for doxygen #9446

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 2 additions & 16 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,13 @@ on:
# Runs at 16:00 UTC (BeiJing 00:00) on the 30st of every month
schedule:
- cron: '0 16 30 * *'
push:
branches:
- master
paths-ignore:
- '**/README.md'
- '**/README_zh.md'
pull_request:
branches:
- master
paths-ignore:
- bsp/**
- examples/**
- .github/**
- '**/README.md'
- '**/README_zh.md'
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
name: doxygen_doc generate
if: github.repository_owner == 'RT-Thread' && false
if: github.repository_owner == 'RT-Thread'
steps:
- uses: actions/checkout@v4
with:
Expand Down
18 changes: 14 additions & 4 deletions components/drivers/include/drivers/dev_can.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,16 @@ enum CANBAUD
#define RT_CAN_MODE_PRIV 0x01
#define RT_CAN_MODE_NOPRIV 0x00

/** @defgroup CAN_receive_FIFO_number CAN Receive FIFO Number
* @{
*/
/**
* @addtogroup Drivers RTTHREAD Driver
* @defgroup CAN_Device CAN Driver
* @ingroup Drivers
*/

/*!
* @addtogroup CAN_Device
* @{
*/
#define CAN_RX_FIFO0 (0x00000000U) /*!< CAN receive FIFO 0 */
#define CAN_RX_FIFO1 (0x00000001U) /*!< CAN receive FIFO 1 */

Expand Down Expand Up @@ -360,5 +367,8 @@ rt_err_t rt_hw_can_register(struct rt_can_device *can,
const struct rt_can_ops *ops,
void *data);
void rt_hw_can_isr(struct rt_can_device *can, int event);
#endif /*__DEV_CAN_H*/

/*! @}
*/

#endif /*__DEV_CAN_H*/
131 changes: 128 additions & 3 deletions components/drivers/include/drivers/dev_serial.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2006-2024, RT-Thread Development Team
* Copyright (c) 2006-2024 RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
Expand All @@ -15,7 +15,105 @@
#define __DEV_SERIAL_H__

#include <rtthread.h>
/**
* @addtogroup Drivers RTTHREAD Driver
* @defgroup Serial Serial
*
* @brief Serial driver api
*
* <b>Example</b>
* @code {.c}
*
* #include <rtthread.h>
*
* #define SAMPLE_UART_NAME "uart2"
* static struct rt_semaphore rx_sem;
* static rt_device_t serial;
*
* static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
* {
*
* rt_sem_release(&rx_sem);
*
* return RT_EOK;
* }
*
* static void serial_thread_entry(void *parameter)
* {
* char ch;
*
* while (1)
* {
*
* while (rt_device_read(serial, -1, &ch, 1) != 1)
* {
*
* rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
* }
*
* ch = ch + 1;
* rt_device_write(serial, 0, &ch, 1);
* }
* }
*
* static int uart_sample(int argc, char *argv[])
* {
* rt_err_t ret = RT_EOK;
* char uart_name[RT_NAME_MAX];
* char str[] = "hello RT-Thread!\r\n";
*
* if (argc == 2)
* {
* rt_strncpy(uart_name, argv[1], RT_NAME_MAX);
* }
* else
* {
* rt_strncpy(uart_name, SAMPLE_UART_NAME, RT_NAME_MAX);
* }
*
*
* serial = rt_device_find(uart_name);
* if (!serial)
* {
* rt_kprintf("find %s failed!\n", uart_name);
* return RT_ERROR;
* }
*
*
* rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO);
*
* rt_device_open(serial, RT_DEVICE_FLAG_INT_RX);
*
* rt_device_set_rx_indicate(serial, uart_input);
*
* rt_device_write(serial, 0, str, (sizeof(str) - 1));
*
*
* rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024, 25, 10);
*
* if (thread != RT_NULL)
* {
* rt_thread_startup(thread);
* }
* else
* {
* ret = RT_ERROR;
* }
*
* return ret;
* }
*
* MSH_CMD_EXPORT(uart_sample, uart device sample);
* @endcode
*
* @ingroup Drivers
*/


/*!
* @addtogroup Serial
* @{
*/
#define BAUD_RATE_2400 2400
#define BAUD_RATE_4800 4800
#define BAUD_RATE_9600 9600
Expand Down Expand Up @@ -105,7 +203,6 @@
/**
* @brief Sets a hook function when RX indicate is called
*
* @param thread is the target thread that initializing
*/
typedef void (*rt_hw_serial_rxind_hookproto_t)(rt_device_t dev, rt_size_t size);
RT_OBJECT_HOOKLIST_DECLARE(rt_hw_serial_rxind_hookproto_t, rt_hw_serial_rxind);
Expand Down Expand Up @@ -173,7 +270,7 @@ struct rt_serial_device
typedef struct rt_serial_device rt_serial_t;

/**
* uart operators
* @brief Configure the serial device
*/
struct rt_uart_ops
{
Expand All @@ -186,13 +283,41 @@ struct rt_uart_ops
rt_ssize_t (*dma_transmit)(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction);
};

/**
* @brief Serial interrupt service routine
* @param serial serial device
* @param event event mask
* @ingroup Serial
*/
void rt_hw_serial_isr(struct rt_serial_device *serial, int event);

/**
* @brief Register a serial device to device list
*
* @param serial serial device
* @param name device name
* @param flag device flag
* @param data device private data
* @return rt_err_t error code
* @note This function will register a serial device to system device list,
* and add a device object to system object list.
* @ingroup Serial
*/
rt_err_t rt_hw_serial_register(struct rt_serial_device *serial,
const char *name,
rt_uint32_t flag,
void *data);

/**
* @brief register a serial device to system device list and add a device object to system object list
*
* @param serial serial device
* @return rt_err_t error code
*
* @ingroup Serial
*/
rt_err_t rt_hw_serial_register_tty(struct rt_serial_device *serial);

/*! @}*/

#endif
Loading
Loading