搜索
bottom↓
回复: 5

求助坛友,BF533 UART DMA向外发数不成功,已经困死几个礼拜了

[复制链接]

出0入0汤圆

发表于 2010-10-22 11:15:40 | 显示全部楼层 |阅读模式
刚开始学DSP,用的是ADI的blackfin533,感觉资料好少啊,这两个礼拜就一直盯着533的datasheet看,晕死!盼坛中高手帮下小弟,拜谢!


第一个图是程序,第二个图是寄存器

BF533的串口程序 (原文件名:2010-10-21 15.32.21.jpg)


寄存器的值 (原文件名:2010-10-21 15.33.14.jpg)

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-10-22 11:19:09 | 显示全部楼层
不明白!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2010-10-22 15:37:28 | 显示全部楼层
DMA貌似没有什么问题已经在运行没有报错,且当前DMA_CURR_COUNT 已经在传输第八个数据了。因此怀疑是你UART配置有问题,看看波特率或者其他地方是不是有问题。

出0入0汤圆

 楼主| 发表于 2010-10-22 17:47:03 | 显示全部楼层
回复【2楼】tomjark
dma貌似没有什么问题已经在运行没有报错,且当前dma_curr_count 已经在传输第八个数据了。因此怀疑是你uart配置有问题,看看波特率或者其他地方是不是有问题。
-----------------------------------------------------------------------

那几行串口的程序就是是设置波特率和开启串口时钟,波特率已经验证过了,因为用那几行程序试过一次发一个数(不用DMA,给THR中直接写数)。谢谢你的回复

出0入0汤圆

 楼主| 发表于 2010-10-22 19:52:27 | 显示全部楼层
自己顶一下,继续等大虾

出0入0汤圆

发表于 2010-10-22 21:21:39 | 显示全部楼层
上个我做过的UART发送指令控制外部设备的代码给你参考看看。程序是基于BF548的不过改改就能用了。

/****************************************************************************
* 名称 : Init_Port
* 功能 : 初始化UARTx接口
****************************************************************************/

void Init_Port(void)
{
        //UART3 function
        *pPORTB_FER        |= Px6|Px7;
       
        //UART transmit mode
        //set UART3CTS to high level
        *pPORTB_FER &= ~Px3;
        *pPORTB_DIR_SET |= Px3;
        *pPORTB |= Px3;
       
        //set UART3RTS to low level
        *pPORTB_FER &= ~Px2;
        *pPORTB_DIR_SET |= Px2;
        *pPORTB &= ~Px2;
       
}


/****************************************************************************
* 名称 : Init_UART3
* 功能 : 初始化UARTx接口
****************************************************************************/

void Init_UART3(void)
{
        *pUART3_GCTL =  UCEN;
        *pUART3_LCR = 0x03;
        *pUART3_DLL = BAUD_RATE_1000000;
        *pUART3_DLH = (BAUD_RATE_1000000 >> 8);
}

/****************************************************************************
* 名称 : Init_DMA
* 功能 : 初始化DM
****************************************************************************/

void Init_DMA(void)
{       
        //peripheral map register
        *pDMA21_PERIPHERAL_MAP = 0xF000;
        // DMA Config: Enable DMA | 8-bit
        *pDMA21_CONFIG = DI_EN | WDSIZE_8 | SYNC;
        // start address of the DMA
        *pDMA21_START_ADDR = uartSendBuffer;
        //data count of transfers
        *pDMA21_X_COUNT = 18;
        //The modifier is set to 1 because of the 8 bit transfers       
        *pDMA21_X_MODIFY = 1;
       
        ssync();
}

/****************************************************************************
* 名称 : EnableUART3_DMA
* 功能 : 使能UART3_DMA
****************************************************************************/
void EnableUART3_DMA(void)
{
    // enable transfers
    *pDMA21_CONFIG |= 0x1;
    ssync();
   
    *pUART3_IER_SET|= ETBEI;
    ssync();
}

/****************************************************************************
* 名称 : EX_INTERRUPT_HANDLER
* 功能 : UART3中断函数
****************************************************************************/
EX_INTERRUPT_HANDLER(UART3_TxIsr)
{
        *pDMA21_IRQ_STATUS |= DMA_DONE;
        ssync();
        //printf("uart_dma end !\n");
        transmitted = 1;
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-26 03:00

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

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