新手入门
- 积分
- 7
- 金钱
- 7
- 注册时间
- 2019-7-29
- 在线时间
- 2 小时
|
5金钱
大致内容是STM32F767通过串口向芯片发数据,然后芯片会返回数据,767接收返回的数据,但现在的情况是接收的只有一部分或者说格式与返回数据的格式不一样,但有一点数据
void MYDMA_Config(DMA_Stream_TypeDef *DMA_Streamx,u32 chx)
{
__HAL_RCC_DMA1_CLK_ENABLE(); //打开时钟
__HAL_LINKDMA(&UART4_Handler,hdmarx,UART4RxDMA_Handler); //DMA与UART链接
//Rx DMA配置
UART4RxDMA_Handler.Instance=DMA_Streamx; //数据流
UART4RxDMA_Handler.Init.Channel=chx; //通道
UART4RxDMA_Handler.Init.Direction=DMA_PERIPH_TO_MEMORY; //外设到内存
UART4RxDMA_Handler.Init.PeriphInc=DMA_PINC_DISABLE; //外设不递增
UART4RxDMA_Handler.Init.MemInc=DMA_MINC_ENABLE; //内存递增
UART4RxDMA_Handler.Init.PeriphDataAlignment=DMA_PDATAALIGN_BYTE; //传送数据长度8bit
UART4RxDMA_Handler.Init.MemDataAlignment=DMA_MDATAALIGN_BYTE;
UART4RxDMA_Handler.Init.Mode=DMA_NORMAL; //普通模式
UART4RxDMA_Handler.Init.Priority=DMA_PRIORITY_MEDIUM; //中等优先级
UART4RxDMA_Handler.Init.FIFOMode=DMA_FIFOMODE_DISABLE; //未使用FIFO
UART4RxDMA_Handler.Init.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL;
UART4RxDMA_Handler.Init.MemBurst=DMA_MBURST_SINGLE; //单次传输
UART4RxDMA_Handler.Init.PeriphBurst=DMA_PBURST_SINGLE;
|
最佳答案
查看完整内容[请看2#楼]
参考
http://www.openedv.com/forum.php?mod=viewthread&tid=284146&highlight=F7%2B%2B%B4%AE%BF%DA%2BDMA
|