搜索
bottom↓
回复: 2

瑞萨RX62N使用DMA+SCI传输问题

[复制链接]

出0入0汤圆

发表于 2016-3-4 16:52:28 | 显示全部楼层 |阅读模式
我在使用瑞萨RX62N单片机,有瑞萨官方提供的RPDL驱动,实现通过DMA接收SCI的数据,但是SCI发送不通过DMA,结果我的发送串口收不到。
代码如下:
/* PDL functions and definitions */
#include "r_pdl_dmac.h"
#include "r_pdl_cgc.h"
#include "r_pdl_intc.h"
#include "r_pdl_sci.h"
/* RPDL device-specific definitions */
#include "r_pdl_definitions.h"


/* Callback function prototype */
void DMAC2_transfer_end_handler(void);
void main(void);
/* Data destination area */
volatile uint8_t destination_string_1[32]={0};

void main(void)
{
        unsigned char i;
        /* Initialise the system clocks */
        R_CGC_Set(
                8E6,
                64E6,
                32E6,
                PDL_NO_DATA,
                PDL_CGC_BCLK_DISABLE
        );
        /* Set the CPU’s Interrupt Priority Level to 0 */
        R_INTC_Write(
                PDL_INTC_REG_IPL,
                0
                );
        /* Configure the RS232 port */
        R_SCI_Create(
                2,
                PDL_SCI_ASYNC |PDL_SCI_TX_CONNECTED | PDL_SCI_RX_CONNECTED | PDL_SCI_8_BIT_LENGTH | PDL_SCI_PARITY_NONE | PDL_SCI_STOP_1,
                115200,
                7
        );
               
        /* Configure channel 2 */
        R_DMAC_Create(
                2,
                PDL_DMAC_NORMAL | PDL_DMAC_SOURCE_ADDRESS_FIXED| \
                PDL_DMAC_DESTINATION_ADDRESS_PLUS| PDL_DMAC_SIZE_8 | PDL_DMAC_IRQ_END | PDL_DMAC_TRIGGER_CLEAR,
                PDL_DMAC_TRIGGER_SCI2_RX,
                (uint8_t *)&SCI2.RDR,
                destination_string_1,
                32,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                DMAC2_transfer_end_handler,
                0
        );
        /* Enable channel 2 */
        R_DMAC_Control(
                2,
                PDL_DMAC_ENABLE,
                PDL_NO_PTR,
                PDL_NO_PTR,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA
        );
       
               
        /* Initiate reception, triggering the DMAC when data is received */
        R_SCI_Receive(
                2,
                PDL_SCI_DMAC_TRIGGER_ENABLE,
                PDL_NO_PTR,
                PDL_NO_DATA,
                PDL_NO_FUNC,
                PDL_NO_FUNC
        );

               
        R_SCI_Send(
                2,
                PDL_NO_DATA,
                "SEND",
                0,
                PDL_NO_FUNC
        );       
       
}



void DMAC2_transfer_end_handler(void)
{
        /* Disable channel 2 */
        R_DMAC_Control(
                2,
                PDL_DMAC_SUSPEND,
                PDL_NO_PTR,
                PDL_NO_PTR,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA,
                PDL_NO_DATA
        );
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-3-20 16:35:45 | 显示全部楼层
DMA 这玩意很难,一直搞不清楚。

关注中

出0入0汤圆

 楼主| 发表于 2016-4-21 11:04:47 | 显示全部楼层
串口DMA收发已经实现了。但是我想使用DMA接收串口数据存入循环队列里,不知道如何实现。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 21:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表