mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-26 14:54:35 +08:00
[bsp/ls1cdev]
1、astyle格式化drv_uart代码 2、修改drv_uart.h头文件声明
This commit is contained in:
@@ -32,102 +32,102 @@
|
||||
struct rt_uart_ls1c
|
||||
{
|
||||
ls1c_uart_t UARTx;
|
||||
rt_uint32_t IRQ;
|
||||
rt_uint32_t IRQ;
|
||||
};
|
||||
|
||||
static rt_err_t ls1c_uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
|
||||
{
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
ls1c_uart_info_t uart_info = {0};
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
ls1c_uart_info_t uart_info = {0};
|
||||
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
RT_ASSERT(cfg != RT_NULL);
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
RT_ASSERT(cfg != RT_NULL);
|
||||
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
|
||||
// 初始化串口
|
||||
uart_info.UARTx = uart_dev->UARTx;
|
||||
uart_info.baudrate = cfg->baud_rate;
|
||||
uart_info.rx_enable= TRUE;
|
||||
// 初始化串口
|
||||
uart_info.UARTx = uart_dev->UARTx;
|
||||
uart_info.baudrate = cfg->baud_rate;
|
||||
uart_info.rx_enable = TRUE;
|
||||
uart_init(&uart_info);
|
||||
|
||||
return RT_EOK;
|
||||
return RT_EOK;
|
||||
|
||||
}
|
||||
|
||||
static rt_err_t ls1c_uart_control(struct rt_serial_device *serial, int cmd, void *arg)
|
||||
{
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case RT_DEVICE_CTRL_CLR_INT: /* disable rx irq */
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case RT_DEVICE_CTRL_CLR_INT: /* disable rx irq */
|
||||
rt_hw_interrupt_mask(uart_dev->IRQ);
|
||||
break;
|
||||
break;
|
||||
|
||||
case RT_DEVICE_CTRL_SET_INT: /* enable rx irq */
|
||||
rt_hw_interrupt_umask(uart_dev->IRQ);
|
||||
break;
|
||||
case RT_DEVICE_CTRL_SET_INT: /* enable rx irq */
|
||||
rt_hw_interrupt_umask(uart_dev->IRQ);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
return RT_EOK;
|
||||
|
||||
}
|
||||
|
||||
static int ls1c_uart_putc(struct rt_serial_device *serial, char c)
|
||||
{
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
uart_putc(uart_dev->UARTx, c);
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
|
||||
return 1;
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
uart_putc(uart_dev->UARTx, c);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ls1c_uart_getc(struct rt_serial_device *serial)
|
||||
{
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
void *uart_base = uart_get_base(uart_dev->UARTx);
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
if(LSR_RXRDY & reg_read_8(uart_base + LS1C_UART_LSR_OFFSET))
|
||||
{
|
||||
return reg_read_8(uart_base + LS1C_UART_DAT_OFFSET);
|
||||
}
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
|
||||
return -1;
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
void *uart_base = uart_get_base(uart_dev->UARTx);
|
||||
|
||||
if (LSR_RXRDY & reg_read_8(uart_base + LS1C_UART_LSR_OFFSET))
|
||||
{
|
||||
return reg_read_8(uart_base + LS1C_UART_DAT_OFFSET);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* UART interrupt handler */
|
||||
static void uart_irq_handler(int vector, void *param)
|
||||
{
|
||||
struct rt_serial_device *serial = (struct rt_serial_device*)param;
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
struct rt_serial_device *serial = (struct rt_serial_device *)param;
|
||||
struct rt_uart_ls1c *uart_dev = RT_NULL;
|
||||
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
void *uart_base = uart_get_base(uart_dev->UARTx);
|
||||
unsigned char iir = reg_read_8(uart_base + LS1C_UART_IIR_OFFSET);
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
|
||||
// 判断是否为接收超时或接收到有效数据
|
||||
if ((IIR_RXTOUT & iir) || (IIR_RXRDY & iir))
|
||||
{
|
||||
rt_interrupt_enter();
|
||||
rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
uart_dev = (struct rt_uart_ls1c *)serial->parent.user_data;
|
||||
void *uart_base = uart_get_base(uart_dev->UARTx);
|
||||
unsigned char iir = reg_read_8(uart_base + LS1C_UART_IIR_OFFSET);
|
||||
|
||||
// 判断是否为接收超时或接收到有效数据
|
||||
if ((IIR_RXTOUT & iir) || (IIR_RXRDY & iir))
|
||||
{
|
||||
rt_interrupt_enter();
|
||||
rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -159,12 +159,12 @@ void rt_hw_uart_init(void)
|
||||
serial2.ops = &stm32_uart_ops;
|
||||
serial2.config = config;
|
||||
|
||||
pin_set_purpose(36, PIN_PURPOSE_OTHER);
|
||||
pin_set_purpose(37, PIN_PURPOSE_OTHER);
|
||||
pin_set_remap(36, PIN_REMAP_SECOND);
|
||||
pin_set_remap(37, PIN_REMAP_SECOND);
|
||||
pin_set_purpose(36, PIN_PURPOSE_OTHER);
|
||||
pin_set_purpose(37, PIN_PURPOSE_OTHER);
|
||||
pin_set_remap(36, PIN_REMAP_SECOND);
|
||||
pin_set_remap(37, PIN_REMAP_SECOND);
|
||||
|
||||
rt_hw_interrupt_install(uart->IRQ, uart_irq_handler, &serial2, "UART2");
|
||||
rt_hw_interrupt_install(uart->IRQ, uart_irq_handler, &serial2, "UART2");
|
||||
|
||||
/* register UART1 device */
|
||||
rt_hw_serial_register(&serial2,
|
||||
|
||||
Reference in New Issue
Block a user