找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

请问一下,串口PDMA,M480的PDMA-集散模式,移植到M467的PDMA

[复制链接]
楼主
chrishu 发表于 2024-1-8 09:40:58 | 显示全部楼层
两颗芯片的PDMA移植基本没什么差别。请问一下SYS_Init里PDMA的时钟使能了吗?
另外UART在不使用PDMA时,本身是否可以接收。
回复 支持 反对

使用道具 举报

沙发
chrishu 发表于 2024-1-8 14:48:52 | 显示全部楼层
本帖最后由 chrishu 于 2024-1-8 14:54 编辑
游客 121.29.98.x 发表于 2024-1-8 10:43
使能了。想请教一下,PDMA0的TIME-OUT中断,
    else if (status & 0x300)     /* timeout */
    {

请问一下你是不是有发过邮件给我?邮件里有回复 你的初始化代码里多了下面几行代码,作为集散模式前面已经完成了它配置,不需要再将基本模式的配置跟在后面。//    PDMA_SetTransferCnt(PDMA0,  UART0_RX_DMA_CH, PDMA_WIDTH_8, UART0_RX_size);
//    PDMA_SetTransferAddr(PDMA0, UART0_RX_DMA_CH, (uint32_t) (&UART0_RXBuffer[0]), PDMA_SAR_INC, (uint32_t) UART0_BASE, PDMA_DAR_FIX);
//    PDMA_SetBurstType(PDMA0, UART0_RX_DMA_CH, PDMA_REQ_SINGLE, 0);
你可以按照M480的例程将配置移植过来测试,先不要去加其他东西。
0x300表示通道0 和通道1 发生的超时中断。你可以看一下寄存器PDMAx_INTSTS。
当INTSTS的第二位置1表示有通道传完。
调用PDMA_GET_TD_STS(PDMA0)函数参看是哪些通道发生了传完中断




回复 支持 反对

使用道具 举报

板凳
chrishu 发表于 2024-1-16 10:11:51 | 显示全部楼层
游客 121.29.98.x 发表于 2024-1-8 15:22
是啊!我给您发的email.
我重新下载了一个BSP,一切重新测试,发现我的程序也是没有任何问题的。
原因在 ...

M460有两个PDMA控制器,每个控PDMA制器有16个通道.
M460的说有PDMA通道都支持超时中断功能
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU