又要麻烦不知了,UART的DMA没这个寄存器啊

[复制链接]
3379|10
 楼主| yzjgod 发表于 2012-4-27 11:38 | 显示全部楼层 |阅读模式
我看程序上DMA的偏移量是0X48,但是手册上根本没这个寄存器啊。还有如果使能FIFO之后,UARTCharGetNonBlocking()这个函数只能收到1字节数据,如果是FIFO中有几个数据,是不是还要自己重新写一个多字节接收的函数啊?
Stellaris的UART咋跟别的不一样啊?
TI_MCU 发表于 2012-4-27 13:52 | 显示全部楼层
FIFO读取是通过读取UARTDR寄存器完成的,所以每次只能读出一个,要读多个得进行多次读取。

为了提高性能,建议用DMA
TI_MCU 发表于 2012-4-27 13:52 | 显示全部楼层
楼主说的DMA的偏移量指的是什么?能不能详细点说?
永远的不知 发表于 2012-4-27 15:48 | 显示全部楼层
1# yzjgod
1. DMA的您指的哪个寄存器?可否把您所说的程序贴出来。
2. 如T版所说,那个函数只是接收1个字节的函数,接收多个字节,字节再加一个循环就可以了。
3. 您指的和其他的不一样,能不能具体说说指的是哪些地方?其实都是大同小异的。
 楼主| yzjgod 发表于 2012-4-28 08:27 | 显示全部楼层
#define UART_O_DMACTL           0x00000048  // UART DMA Control

我说的是这个寄存器,手册上没有这个寄存器的描述




void
UARTDMAEnable(unsigned long ulBase, unsigned long ulDMAFlags)
{
    //
    // Check the arguments.
    //
    ASSERT(UARTBaseValid(ulBase));

    //
    // Set the requested bits in the UART DMA control register.
    //
    HWREG(ulBase + UART_O_DMACTL) |= ulDMAFlags;
}

DMA使能的操作应该是没法实现的吧

本帖子中包含更多资源

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

×
 楼主| yzjgod 发表于 2012-4-28 08:34 | 显示全部楼层
昨天下午去TI的宣讲会了,没看到各位版主的回复,除了开发板和资料,也没什么实质内容感觉。
 楼主| yzjgod 发表于 2012-4-28 09:00 | 显示全部楼层
比较了一下6965和9B92的手册,发现6965没有DMA功能,而9B92有这个功能,这个操作就算了吧。
现在主要实验FIFO这个功能,现在没使能这个功能的时候,发现发送的时候,只要发送的数据在16个字节以内,不进行发送写入成功校验时,即不判断
UARTCharPutNonBlocking(UART0_BASE, *pucBuffer)
这个函数的返回值时,16个字节以内都能成功发送,发送数据多于16个的时候就会出错,也就是这个时候的FIFO是有用的,但是也没使能这个功能啊,接收的时候我没判断FIFO里有多少数据,不知道此时发生中断是否就是FIFO中有1个字节还是FIFO使能时的默认8字节,虽然影响不大,但是对于手册上的描述感觉就不是那么信任了。
哎,继续试验吧。
 楼主| yzjgod 发表于 2012-4-30 19:42 | 显示全部楼层
顶一下,别沉了,版主五一也放假啊
jxmzzr 发表于 2012-4-30 23:47 | 显示全部楼层
发问不清,给楼主发回重写。呵呵,顶一下。
 楼主| yzjgod 发表于 2012-5-3 09:05 | 显示全部楼层
版主今天上班吗?再顶一下
cicychen 发表于 2014-1-24 10:36 | 显示全部楼层
yzjgod 发表于 2012-4-28 08:27
#define UART_O_DMACTL           0x00000048  // UART DMA Control

我说的是这个寄存器,手册上没有这个 ...

有这个寄存器,不是资料错了,就是你弄错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

370

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部