| 12345678910111213141516171819202122232425262728293031 |
- #include <MyProject.h>
- /**
- @function Conf_DMA
- @brief DMA配置
- @param[in] DMAx: DMA通道
- ** DMAPipe: DMA管道,可选参数如下
- UART1_XDATA UART1-->XDATA
- XDATA_UART1 UART1<--XDATA
- I2C_XDATA I2C -->XDATA
- XDATA_I2C I2C <--XDATA
- SPI_XDATA SPI -->XDATA
- XDATA_SPI SPI <--XDATA
- ** DMAAddr: 传输首地址,可取地址范围:0x0000~0x0317
- ** DMALen: DMALen 数据包大小(1~64)
- @return None
- @date 2025-11-05
- */
- void Conf_DMA(uint8_t DMAx, uint8_t DMAPipe, uint16_t DMAAddr, uint8_t DMALen)
- {
- // 等待DMAx传输结束
- Wait_DMA(DMAx);
- // 禁止DMAx的传输
- ClrBit(*(&DMA0_CR0 + DMAx), DMAEN);
- // 设置DMAx的传输管道
- SetReg(*(&DMA0_CR0 + DMAx), DMA_PIPE, DMAPipe);
- // 配置长度
- *(&DMA0_LEN + DMAx) = DMALen - 1;
- // 配置传输地址
- *(&DMA0_BA + 2 * DMAx) = DMAAddr & 0x07ff;
- }
|