如图,第一张里的gpio外设的type都是B,也就是猝发请求。而第二张图片里gpio请求支持里猝发请求却是NONE,这是怎么回事?
图一:
图二:
xyz549040622:
还真是,我下载了最新的版本也是这样,你可以实际配置下,看看到底哪个寄存器会置位,以此来确定到底是哪个,或者直接给TI的工程师发邮件反应
guifang hong:
回复 xyz549040622:
谢谢回复,我配置了gpio c4作为udma触发管脚,可是不管怎么翻转电平都无法触发udma传输,你能帮我看一下哪里有问题吗?
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);//使能外设时钟GPIOB
SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOC);
GPIOPadConfigSet(GPIO_PORTC_AHB_BASE, GPIO_PIN_4, GPIO_STRENGTH_12MA,GPIO_PIN_TYPE_STD_WPU);
GPIODirModeSet(GPIO_PORTC_AHB_BASE,GPIO_PIN_4,GPIO_DIR_MODE_IN);
GPIOIntTypeSet(GPIO_PORTC_AHB_BASE, GPIO_PIN_4, GPIO_FALLING_EDGE);//下降沿触发中断
GPIOIntEnable(GPIO_PORTC_AHB_BASE, GPIO_PIN_4);
GPIODMATriggerEnable(GPIO_PORTC_AHB_BASE,GPIO_PIN_4);//gpio触发udma使能
IntEnable(INT_GPIOC);
IntMasterEnable();ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);
ROM_uDMAEnable();
ROM_uDMAControlBaseSet(ui8ControlTable);
ROM_IntEnable(INT_UDMA);
ROM_uDMAChannelAssign(UDMA_CH6_GPIOC);//配置通道6编码3
ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_ETH0RX,
UDMA_ATTR_USEBURST | UDMA_ATTR_ALTSELECT |
(UDMA_ATTR_HIGH_PRIORITY |
UDMA_ATTR_REQMASK));
ROM_uDMAChannelAttributeEnable(UDMA_CHANNEL_ETH0RX, UDMA_ATTR_HIGH_PRIORITY);ROM_uDMAChannelControlSet(UDMA_CHANNEL_ETH0RX | UDMA_PRI_SELECT,
UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 |
UDMA_ARB_1);ROM_uDMAChannelTransferSet(UDMA_CHANNEL_ETH0RX | UDMA_PRI_SELECT,
UDMA_MODE_BASIC, (void *)imgbuff, (void *)ov7725_eagle_img_buff,
CAMERA_DMA_NUM);ROM_uDMAChannelEnable(UDMA_CHANNEL_ETH0RX);
guifang hong:
回复 xyz549040622:
我在ccs的debug里面把DMAUSEBURSTSET寄存器的通道6置1,运行后又恢复为0,这是不是说明gpio是不支持猝发请求的呢?
xyz549040622:
回复 guifang hong:
1.你设置为单次请求是否也出现这种情况呢
2.你看看寄存器介绍,是否触发后会自动复位为0呢
3.排除上面两种才可以确认是否支持猝发请求
guifang hong:
回复 xyz549040622:
好像没有单独的设置啊
susie xu:
回复 guifang hong:
我现在也碰到这个问题,请问有结果么?
rong huang3:
目前我正在调试ov7620,发现无论如何都无法触发,并且不知道如何使其地址自动递增,请问有解决方法吗?
memgzhu pan:
回复 guifang hong:
请问你的问题解决了吗?我现在也在用GPIO触发DMA,我也遇到了同样的问题,
memgzhu pan:
回复 rong huang3:
我也在调试摄像头,现在我的程序行中断,场中断,都正常,而且我DMA触发源中断函数也正常,但是就是数据无法传输给目的地址
ROM_uDMAChannelControlSet(UDMA_CHANNEL_SW | UDMA_PRI_SELECT,UDMA_SIZE_8 | UDMA_SRC_INC_8 | UDMA_DST_INC_8 |UDMA_ARB_1024);这个函数就可以实现地址自动递增,红色的代码是源地址增量(8位),黄色代码是目的地址增量(8位),这个参数的设置是与你的源地址,目的地址的数据类型有关,如果你定义的目的地址是一个32位的,则你的目的地址增量就是32位。
我也是最近刚学的,希望能帮到你
memgzhu pan:
回复 rong huang3:
请问你的问题解决了吗?希望一起学习
qq 1228974075