Skip to content

Simgor001/fuart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

fuart库

License: MIT

1. 介绍

fuart库用于接入单片机的UART通信。

使用时,需要按照平台封装好UART相关的函数,并且传入初始化结构体。

2. 测试平台

MCU:R5F10BGGC

3. 使用说明

根据所使用的平台,先封装好uart相关的函数(阻塞函数), 以RL78平台为例。

extern volatile char uart0_tx_flag;
extern volatile char uart0_rx_flag;

void uart0_Send(uint8_t * const tx_buf, uint16_t tx_num)
{
    uint16_t len = strlen(tx_buf);
    uart0_tx_flag = R_UART0_Send((uint8_t *)tx_buf, len);
    while(uart0_tx_flag == 0);
}

uint8_t uart0_Receive()
{
    uint8_t buf;
    uart0_rx_flag = 0;
    uart0_rx_flag = R_UART0_Receive(&buf, 1);
    while(uart0_rx_flag == 0);
    return buf;
}

中断设置如下:

volatile char uart0_tx_flag;
volatile char uart0_rx_flag;

static void r_uart0_callback_sendend(void)
{
    /* Start user code. Do not edit comment generated here */
    uart0_tx_flag = 1;
    /* End user code. Do not edit comment generated here */
}

static void r_uart0_callback_receiveend(uint8_t err_type)
{
    /* Start user code. Do not edit comment generated here */
    uart0_rx_flag = 1;
    /* End user code. Do not edit comment generated here */
}

3.1 初始化

首先需要初始化fuart设备。这需要提供一个fuart_InitTypeDef类型的结构体,其中包含了设备的发送函数和接收函数。然后,调用fuart_Init函数进行初始化,并获取到一个设备句柄。

fuart_InitTypeDef fuart_InitStruct;
fuart_t fuart;

fuart_InitStruct.Send = &uart0_Send; // 发送数据的函数指针
fuart_InitStruct.Receive = &uart0_Receive; // 接收数据的函数指针

fuart_Init(&fuart_InitStruct, &fuart);

3.2 发送字符串

使用fuart_printf函数发送字符串。可以使用格式化字符串和可变参数。

int data = 114514;
fuart_printf(fuart, "data = %d!\r\n", buf); // 发送一个带有参数的字符串

3.3 接收字符串

使用fuart_scanf函数接收字符串。可以使用格式化字符串和可变参数。

int buf = 0;
fuart_scanf(fuart, "%d", &buf); // 从串口接收一个整数

3.4 释放设备

最后,当我们不再需要使用fuart设备时,可以调用fuart_DeInit函数来释放设备句柄。

fuart_DeInit(fuart);

4. 注意事项

在使用本库时,请确保你的平台上已经正确实现了UART通讯函数,并能够正常工作。

Releases

No releases published

Packages

No packages published

Languages