一起游 手游攻略 手游评测 瑞萨RA系列FSP库开发实战指南之DTC+UART串口收发实验

瑞萨RA系列FSP库开发实战指南之DTC+UART串口收发实验

时间: 来源:互联网 浏览:0

19.10实验4:DTC+UART串口收发19.10.1

软件设计19.10.1.1

新建工程本实验创建新项目的步骤与上面实验3基本相同。

对于e2studio开发环境:复制我们之前的e2s工程“19_UART_Receive_Send”,然后

将程序文件夹重命名为“20_DTC_Using_UART”,最后将其导入到我们的e2studio工作区中。

对于Keil开发环境:复制我们之前的Keil工程“19_UART_Receive_Send”,然后复制工程文件

将文件夹重命名为“20_DTC_Using_UART”,进入该文件夹,双击Keil工程文件打开工程。

工程创建完成后,在工程根目录的“src”文件夹下新建“dtc”文件夹,然后进入“dtc”文件夹新建源文件和头文件:“bsp_dtc.c”和“bsp_dtc.h”。项目文件结构如下。

列表26:文件结构左右滑动查看完整内容20_DTC_External_Interrupt .src led bsp_led.c bsp_led.h debug_uart bsp_debug_uart.c bsp_debug_uart.h dtc bsp_dtc.c bsp_dtc.h hal_entry.c

19.10.1.2

FSP配置打开工程的FSP配置界面。

在“Stacks”栏中,我们可以看到项目“19_UART_Receive_Send”已经配置了UART模块,如下图所示。

e5c6606a-e46b-11f0-8c8f-92fbcf53809c.png

在现有的UART 模块之上,我们的下一步是将DTC 传输驱动程序直接添加到UART 模块的底层。如下图所示。

e61e5216-e46b-11f0-8c8f-92fbcf53809c.png

请按照以下步骤添加用于UART 发送和接收的DTC 底层驱动:

UART发送:用鼠标点击“添加用于传输的DTC驱动程序”“新建”“传输(r_dtc)”。

UART接收:用鼠标依次点击“添加接收用DTC驱动程序”“新建”“传输(r_dtc)”。

我们注意到,“为传输添加DTC驱动程序”后有“[推荐但可选]”字样,“为接收添加DTC驱动程序”后有“[不推荐]”字样。即瑞萨FSP库官方建议我们使用DTC来发送UART数据(虽然也可以不使用DTC),但是不建议使用DTC来接收UART数据。至于为什么会这样,我们稍后再说。

添加完成后,会出现如下图:

e6d18548-e46b-11f0-8c8f-92fbcf53809c.png

上图所示的UART模块显示为红色,并报错。为此,需要修改UART模块的配置。点击UART模块,在属性配置中将“通用”“DTC支持”属性从“禁用”更改为“启用”。

然后顺便点击UART下的DTC模块,你会发现DTC基本都是默认配置的了。我们不需要改变它,也无法改变它。唯一可以改变的是名字。我们改完名字后,就可以点击生成代码,然后编译了。

e729fe08-e46b-11f0-8c8f-92fbcf53809c.png

与上面使用DTC的一些区别是,瑞萨将DTC集成到了UART中,所以我们在使用过程中基本上感觉不到我们是在使用DTC向UART传输数据。

例如,正常情况下会有一个open函数来打开DTC,但是现在我们不需要自己调用这个函数,因为当我们使用g_uart_on_sci.open函数打开串口时,我们内部已经调用了DTC打开函数。

我们只需要调用g_transfer_on_dtc.enable函数来启用它。

列表27:代码清单2023使能dtc左右滑动查看完整内容err=g_transfer_on_dtc.enable(g_uart4.p_cfg-p_transfer_rx-p_ctrl);断言(FSP_SUCCESS==err);

启用后,基本上就可以正常使用串口了。主要区别是:

使用DTC后,串口无需等待传输完成。只需激活DTC即可自动传输数据,不占用CPU;

中断DTC后,相当于DTC接管了串口的中断。

使用g_uart_on_sci.write或R_SCI_UART_Write函数将字符串数据发送到串口。该功能将使用DTC进行内部传输。

列表28:代码清单2024测试dtc串口左右滑动查看完整内容uint8_t sci_tx_data[]={'embedfire-Wildfire www.embedfire.com'};/* 在while(1) 中循环调用*///可以尝试去掉configuration.xml中的DTC模块,然后调试代码看看会有什么区别g_uart_on_sci.write(g_uart4.p_ctrl, (uint8_t *)(sci_tx_data),sizeof(sci_tx_data)/sizeof(sci_tx_data[0]));

19.10.1.3

为什么不用DTC接收串口数据在实际使用过程中DTC有一些限制:本实验中使用DTC发送串口数据,但是我们没有配置使用DTC接收串口数据,因为具体的配置过程可能会很复杂,而且我们不知道串口需要接收多少数据,而且DTC只会在发送完成后产生中断,所以可能存在。我设置接收数据长度为128,但实际传输可能只有100,这时候就不会出现中断了。虽然收到了数据,但我们不知道。

如果使用DTC接口传输,传输大小必须小于或等于64K字节。

因此,虽然FSP配置页面上显示了DTC选项,但不建议使用DTC进行接收。

19.10.2

实验现象运行例程代码时,在串口助手中可以看到字符串“embedfire-wildfire www.embedfire.com”。该字符串以每秒一次的频率传输,LED 也每秒变化一次。

标题:瑞萨RA系列FSP库开发实战指南之DTC+UART串口收发实验
链接:https://yqqlyw.com/news/sypc/67691.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
  • 当RA MCU遇见Zephyr系列(3)——在Vs
  • CW32串口flash编程工具分享
  • 绯红之境兑换码最新2021 礼包兑换码大全

    绯红之境兑换码最新2021 礼包兑换码大全[多图],绯红之境兑换码怎么领取?绯红之境兑换码有哪些?绯红之境在今日

    2026-01-05
    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法

    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法[多图],三国群英传7霸王再临怎么玩?三国群英传7霸王再临

    2026-01-05
    妄想山海怎么加好友 加好友方法大全

    妄想山海怎么加好友 加好友方法大全[多图],妄想山海添加好友功能在哪里?妄想山海添加好友的方法是什么?好友添

    2026-01-05
    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略

    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略[多图],江南百景图又见桃花村钓鱼怎么钓?又见桃花村钓

    2026-01-05