This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123GXL用串口DMA不同时间发送不同帧数据问题



现在在写串口2用DMA发送数据 要求是在主程序不同位置发送不同的数据 但是在配置串口DMA时有个函数 uDMAChannelTransferSet这个函数不仅配置时要用到 串口中断里也要用到 它里面有个数据源指针指向要发送的数据 难道我发送不同的数据每次都要重新配置下指针吗?那中断里的指针怎么自动更改啊?

还有 我用串口2的DMA 但是只有UDMA_CHANNEL_UART0TX和UDMA_CHANNEL_UART1TX 没有串口2的发送通道啊 要自己在函数库里面加吗?

  • 问题1,你发送不同的数据,肯定要重新指定数据源指针的,不然他怎么知道你要发送什么数据呢。

    问题2 ,有串口2的DMA的发送通道的,UDMA_CH13_UART2TX,UDMA_CH12_UART2RX,UDMA_CH0_UART2RX,UDMA_CH1_UART2TX。UART2的DMA可以配置为通道0和1,通道12和13的。

  • 对于问题1 我看的官方例程里地址是固定的 是在DMA初始化里面uDMAChannelTransferSet就固定好地址了的 我要用多个地址的话难道要重复初始化?这个函数在初始化里面调用了一次 在串口中断里面又调用了一次 两次调用都是同一个地址
    问题2 后来我用uDMAChannelAssign指定了一个通道 但问题1一直没解决 也不知道有没有用
    官方例程是乒乓模式 现在我收发的一帧数据最多也就25个字节 是不是用基本模式就可以了?