芯查查logo
  • 物料选型
  • 数据服务
    1. 新产品
    2. 查替代
    3. 丝印反查
    4. 查品牌
    5. PCN/PDN
    6. 查方案
    7. 查代理
    8. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监测预警
    2. 半导体产业链地图
    3. 智能BOM管家
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
RA4L1-SENSOR+05:调试串口输出功能
原创 发布时间:前天 13:25
版块:
瑞萨电子
简介:串口输出调试函数

一:瑞萨RA4L1的串口基本知识:

在 RA4L1 中,串口功能通常由 SCI(Serial Communications Interface) 模块提供。该模块支持多种模式,其中最基本和最常用的就是 UART(异步串行)模式。

关键特性:

全双工异步通信:可以同时进行发送和接收。

可编程的波特率:支持非常宽的波特率范围,通过时钟分频或特定波特率发生器寄存器设置。

可配置的数据格式:

数据位长度:7位 或 8位

停止位:1位 或 2位

校验位:无、偶校验、奇校验

丰富的错误检测标志:帧错误、奇偶校验错误、溢出错误。

中断驱动:支持发送空、接收数据就绪、错误等多种中断源,可高效利用CPU资源。

FIFO:部分型号可能支持FIFO,以减少中断频率。

多通道:RA4L1组通常提供多个独立的 SCI/UART 通道(例如,SCI0, SCI1, ...)

二:硬件查看:

可以看到开发板,可以通过串口1 P109和P110引脚,与PC端进行通讯, 进行数据的交互。

三:FSP库配置

3.1 使能串口的时钟

我使用的是uart9,应该是在这个地方配置时钟,或者是其他的地方,后来才发现这个地方是配置错了。

3.2 新建串口9的任务

3.3 配置串口9的基本属性:

Name: 例如 g_uart9

Channel: 选择硬件通道,例如 9

Baud Rate: 设置通信速率,例如 115200(默认参数)

Data Bits: 8 bits

Parity: None

Stop Bits: 1 bit

Interrupts:

通常使能 Receive Data Full 和 Transmit Data Empty 中断。

Callback: 设置中断回调函数名,例如 g_uart9_callback(FSP自动生成,使用的时候直接调用就可以)

Pin Configuration: 在 Pins 选项卡中,为选择的通道配置具体的 TXD 和 RXD 引脚

3.4 这里很重要的是需要配置堆栈的大小,否则会导致程序运行不正常:

四:代码编写如下所示:

4.1 串口9的初始化部分:

void g_uart9_init(void)
{
    fsp_err_t err = FSP_SUCCESS;
    err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
    if (FSP_SUCCESS != err)
    {
        while(1);
    }
}

4.2 串口9的回调处理部分:

void g_uart9_callback(uart_callback_args_t *p_args)
{
    switch (p_args->event)
    {
        case UART_EVENT_TX_COMPLETE:
             g_data_transmit_flag = true;
        break;

        case UART_EVENT_RX_COMPLETE:
            g_data_received_flag = true;
        break;

    default:
    break;
    }
}

4.3 通过串口发送一个字节函数如下所示:

void  Dwin_Send_Example(uint8_t ch)
{
    fsp_err_t err = FSP_SUCCESS;
    err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1);

    if(FSP_SUCCESS != err) __BKPT();
    while(g_data_transmit_flag == false);
    g_data_transmit_flag = false;
}

4.4 发送一个字符串如下所示:

void SendTestData(uint8_t ID)
{
    static uint8_t DWIN_Buffer[]={"xin cha cha RA4L1 test!\n"};;
    volatile int i = 0 ;

    for(i= 0 ;i < sizeof(DWIN_Buffer) ; i++)
    {
        Dwin_Send_Example(DWIN_Buffer[i]);
    }
}

接在200ms的任务中,调用上述函数就可以了:

void System_Tim_Driver(char Tim_Intev)
{
    switch(Tim_Intev)
    {
        case 1:
                  LED1_TOGGLE;
        break;

        case 2:  SendTestData(0x03);

        break;

        case 10:   LED3_TOGGLE;

         break ;
        default:break;
    }
}

五:实物测试如图所示:

             使用串口工具监测一下数据:

调试后记:

硬件正确连接:使用type-c线直接连接串口就可以。

FSP 图形化配置:选择通道、设置参数、配置引脚和中断。

代码实现:打开设备、编写中断回调函数、使用读写 API。

调试:确保波特率匹配,善用工具(逻辑分析仪)进行波形分析。

开源社区
前天 13:25
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
发布者
聪聪哥哥
最新帖子
高压电机直接启动的危害及解决方案:软启动柜选型与应用指南RA4L1-SENSOR+07:调试串口的不定长数据回传功能RA4L1-SENSOR+06:串口的数据回传功能RA4L1-SENSOR+05:调试串口输出功能线性和半线性方案,解决小功率交流转5V的成本,性能,体积痛点
热门版块
查看更多
问型号
问技术
问行情
硬件资源下载区
汽车电子工程师论坛
工业电子专区
新手入门指南
专家问答
单片机/MCU论坛
PCB设计

2

收藏

分享

微信扫码
分享给好友

评论