发帖
9 0 1

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

ckdsx.cn
论坛元老

72

主题

166

回帖

5118

积分

论坛元老

积分
5118
Ai-WB2系列 1803 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方式可实现。


──── 0人觉得很赞 ────

使用道具 举报

2023-9-11 18:17:28
学习学习
2023-9-11 19:06:44
学习打卡
2023-9-11 21:14:58
cy
2023-9-12 10:25:27
打卡
2023-9-12 10:26:37
学习
2023-9-13 12:57:16
点灯
2023-9-15 17:32:07
点灯
我使用该demo测试发送ATSOCKETSENDasdqwertyuiopzxcvbnm123456789,只能接收部分数据
2024-10-24 08:01:53
胖胖的杰瑞鼠 发表于 2024-10-21 17:59
我使用该demo测试发送ATSOCKETSENDasdqwertyuiopzxcvbnm123456789,只能接收部分数据

把串口缓冲区的大小加大
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28077 个
  • 话题数: 39670 篇