标题: 自己写的stm32串口和DMA的配合程序的分享 [打印本页]

作者: 伊森亨特    时间: 2018-7-4 16:51
标题: 自己写的stm32串口和DMA的配合程序的分享
现在写了发送和接收,接收的时候需要一个缓冲区,两个程序用的都是串口1,PA9和PA10,可以直接运行现在是数据从内存到数据寄存器、从数据寄存器到内存。
大家有哪些DMA和串口配合的程序也可以分享,我暂时就想到这两个
DMA串口接收数据寄存器到内存.rar (315.29 KB, 下载次数: 20)
DMA串口发送内存到数据寄存器.rar (315.42 KB, 下载次数: 13)


stm32单片机源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include        "stm32f10x.h"
  3. #include        "bsp.h"
  4. #include        "tim.h"
  5. #include        "delay.h"
  6. #include        "bitband.h"
  7. #include        "usart.h"
  8. #include        "dma.h"
  9. /* Private define ------------------------------------------------------------*/

  10. /* Private variables ---------------------------------------------------------*/
  11. uint8_t Sendbuff[3000]={0};//定义外部变量数组

  12. /* Private function prototypes -----------------------------------------------*/

  13. /* Private functions ---------------------------------------------------------*/

  14. /**
  15.   * @brief   Main program
  16.   * @param  None
  17.   * @retval None
  18.   */
  19. int main(void)
  20. {
  21.         /* Private variables ---------------------------------------------------------*/
  22.         u32 i;
  23.         /* User Code ---------------------------------------------------------*/
  24.         BSP_Config();
  25.         delay_init();
  26.         usart_config();
  27.         usart_gpio_config();
  28.         DMA_Config();
  29. //在内存中存储3000个数据,
  30.         for(i=0;i<1000;i++){Sendbuff[i]='A';}
  31.         for(i=1000;i<2000;i++){Sendbuff[i]='B';}
  32.         for(i=2000;i<3000;i++){Sendbuff[i]='C';}
  33.         DMA_Cmd(DMA1_Channel4, ENABLE);//使能DMA通道4
  34.         USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);//串口1发送DMA请求
  35.         /* Main Loop ---------------------------------------------------------*/
  36.         while(1)
  37.         {       
  38.                         LED1_ON();
  39.                         delay_ms(500);
  40.                         LED1_OFF();
  41.                         delay_ms(500);
  42.         }
  43. }
  44. /* Private functions ---------------------------------------------------------*/


复制代码


作者: 伊森亨特    时间: 2018-7-4 17:26
求一个DMA和USART 收发不定长数据的程序,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1