WB2 示例代码入门---外设串口

[复制链接]
查看1595 | 回复9 | 2023-9-11 16:38:30 | 显示全部楼层 |阅读模式
本帖最后由 ckdsx.cn 于 2023-9-12 10:43 编辑

#include <stdio.h>
#include <string.h>
#include <FreeRTOS.h>
#include <task.h>
#include <blog.h> //
#include "bl_sys.h"
#include <stdio.h>
#include <cli.h>
#include <hosal_uart.h>
#include <blog.h>     //include 一遍头文件即可
#include <hosal_uart.h>

void TaskUart(void *param)  //新建无返回函数TaskUart
{

    uint8_t data[32]; //定义 数组data
    int ret; //定义变量 ret

    hosal_uart_dev_t uart_dev_echo = {
        .config = {
            .uart_id = 0,
            .tx_pin = 4, // TXD GPIO
            .rx_pin = 3, // RXD GPIO
            .cts_pin = 255,
            .rts_pin = 255,
            .baud_rate = 9600,   //波特率 9600,8,n,1
            .data_width = HOSAL_DATA_WIDTH_8BIT,
            .parity = HOSAL_NO_PARITY,
            .stop_bits = HOSAL_STOP_BITS_1,
            .mode = HOSAL_UART_MODE_POLL,
        },
    };

    hosal_uart_dev_t uart_dev_log = {
        .config = {
            .uart_id = 1,
            .tx_pin = 16, // TXD GPIO
            .rx_pin = 7,  // RXD GPIO
            .cts_pin = 255,
            .rts_pin = 255,
            .baud_rate = 115200,  //波特率9600,8,n,1
            .data_width = HOSAL_DATA_WIDTH_8BIT,
            .parity = HOSAL_NO_PARITY,
            .stop_bits = HOSAL_STOP_BITS_1,
            .mode = HOSAL_UART_MODE_POLL,
        },
    };

    /* Uart init device */   
    hosal_uart_init(&uart_dev_log);  //初始化串口设备 日志
    /* Uart init device */
    hosal_uart_init(&uart_dev_echo); //初始化串口设备 回显
    blog_info("Uart Demo Start");  //日志输出串口示例开始
    while (1) //循环
    {
        /* Uart receive poll */ 串口接收
        ret = hosal_uart_receive(&uart_dev_log, data, sizeof(data)); //将串口接收到的数据赋值给ret
        if (ret > 0) //判断 如果ret大于0
        {
            /* Uart send poll */
            hosal_uart_send(&uart_dev_log, data, ret); //串口输出ret 数据
            blog_info("Get data ");  //日志输出 获得数据
        }
    }
}

/**
* @brief main
*
*/
void main(void) //主函数
{

    xTaskCreate(TaskUart, "TaskUart", 1024, NULL, 15, NULL); //执行串口任务
}


-------------------------
代码已添加注释,还有问题请留言!
GPIO是对引脚的常规操作方式,点灯等程序都依靠GPIO方式可实现。


回复

使用道具 举报

496199544 | 2023-9-11 18:17:28 | 显示全部楼层
学习学习
回复

使用道具 举报

jkernet | 2023-9-11 19:06:44 来自手机 | 显示全部楼层
学习打卡
回复

使用道具 举报

WYG | 2023-9-11 21:14:58 | 显示全部楼层
cy
回复

使用道具 举报

王乐乐 | 2023-9-12 10:25:27 | 显示全部楼层
打卡
回复

使用道具 举报

王乐乐 | 2023-9-12 10:26:37 | 显示全部楼层
学习
回复

使用道具 举报

LV36 | 2023-9-13 12:57:16 | 显示全部楼层
点灯
回复

使用道具 举报

ifwz1729 | 2023-9-15 17:32:07 | 显示全部楼层
点灯
知足常乐
回复

使用道具 举报

胖胖的杰瑞鼠 | 2024-10-21 17:59:18 | 显示全部楼层
我使用该demo测试发送ATSOCKETSENDasdqwertyuiopzxcvbnm123456789,只能接收部分数据
回复 支持 反对

使用道具 举报

ckdsx.cn | 2024-10-24 08:01:53 | 显示全部楼层
胖胖的杰瑞鼠 发表于 2024-10-21 17:59
我使用该demo测试发送ATSOCKETSENDasdqwertyuiopzxcvbnm123456789,只能接收部分数据

把串口缓冲区的大小加大
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则