你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32f7xx通过DMA发送数据到串口例程

[复制链接]
STMCU小助手 发布时间:2021-12-17 12:04
串口使用usart2
5 l; s( l. l0 adma使用dma1-stream6-channel4
/ y+ ^+ g: P9 {' X* {使用hal库函数( g# E0 m2 a# e. N4 w0 f
  1. DMA_Init(DMA1_Stream6,DMA_CHANNEL_4);/ K9 j' `# v/ ]+ T
  2. HAL_UART_Transmit_DMA(&UART2_Handler,page,num);
    5 h' Y. W2 V6 x* v
  3.     while(1)( u8 D0 D9 r$ J. b. X7 D  W
  4.     {/ e  `  t4 H4 t4 C
  5.         if(__HAL_DMA_GET_FLAG(&UART2TxDMA_Handler,DMA_FLAG_TCIF2_6))//判断传输完成6 ]! K0 d/ k) P; ~
  6.             {' @( Y) P. S8 ]; k
  7.                     __HAL_DMA_CLEAR_FLAG(&UART2TxDMA_Handler,DMA_FLAG_TCIF2_6);//清除标志位
    # J  I/ s+ v. e: o8 h
  8.                     HAL_UART_DMAStop(&UART2_Handler);      //关闭dma
    ' a5 a% p0 X; H0 \( X3 U
  9.             break;
    0 ?2 S6 W; o" x  H# b' s5 U7 {
  10.             }8 n* @: T6 B4 e0 |( U) q# \2 r# O, H
  11.         pos=__HAL_DMA_GET_COUNTER(&UART1TxDMA_Handler);//传输进度( @. C# w; O/ G) t7 s
  12.         printf("pos:%d\n",pos);
    + I7 I6 I# ~" e" n7 ~+ G, X' L0 y8 ^2 ?
  13.     }0 ]; N. p7 A9 G* e" Q
  14. , \* D9 b% T2 F: _  H8 w
  15. 0 R: T1 F7 f% ?! a  e. z1 v
  16. ; h( H& I( {1 h- w
  17. void DMA_Init(DMA_Stream_TypeDef *DMA_Streamx,u32 chx)
    0 V' b, n% [. M
  18. { 9 C' b8 R+ _, m/ X2 p; E
  19.         : H0 E% D) _* S0 w
  20.     __HAL_RCC_DMA1_CLK_ENABLE();
    1 Z* V9 q/ N! C7 O% E4 f' C" j
  21.     __HAL_LINKDMA(&UART2_Handler,hdmatx,UART2TxDMA_Handler);    : f4 ]2 Z0 e- R" y5 U  ?1 x5 Q
  22. 3 Z& B/ L. \' {1 z# B
  23.     UART2TxDMA_Handler.Instance=DMA_Streamx;                            , g1 T4 ?; y' b4 G+ Z
  24.     UART2TxDMA_Handler.Init.Channel=chx;                                
    ' ?/ x& y  C( s3 _# B4 P6 I, y7 \$ Q
  25.     UART2TxDMA_Handler.Init.Direction=DMA_MEMORY_TO_PERIPH;            
    $ X8 F. r. k9 a& A% Y+ H! J
  26.     UART2TxDMA_Handler.Init.PeriphInc=DMA_PINC_DISABLE;                 % }$ W7 h* J1 d% G# g3 ]9 P5 ^( t) y
  27.     UART2TxDMA_Handler.Init.MemInc=DMA_MINC_ENABLE;                     # Q. _* Q$ H# n% y3 m
  28.     UART2TxDMA_Handler.Init.PeriphDataAlignment=DMA_PDATAALIGN_BYTE;    ! o' q7 R9 q; ~3 ]
  29.     UART2TxDMA_Handler.Init.MemDataAlignment=DMA_MDATAALIGN_BYTE;      
    $ G# b9 z8 M4 _! E6 x  F
  30.     UART2TxDMA_Handler.Init.Mode=DMA_NORMAL;                           
    ; p8 V, F4 C  g8 q- s
  31.     UART2TxDMA_Handler.Init.Priority=DMA_PRIORITY_MEDIUM;               
    9 t5 t' K7 z4 U/ }- ~$ E
  32.     UART2TxDMA_Handler.Init.FIFOMode=DMA_FIFOMODE_DISABLE;              
    - Y5 F' G3 _( C, r$ L3 v5 B
  33.     UART2TxDMA_Handler.Init.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL;      " {, G- v( A0 p  t3 t7 a/ X! t: p
  34.     UART2TxDMA_Handler.Init.MemBurst=DMA_MBURST_SINGLE;                 
    ' d% Y+ Y! W1 L! u+ Q
  35.     UART2TxDMA_Handler.Init.PeriphBurst=DMA_PBURST_SINGLE;            
    8 h6 ~5 M2 {/ H* F' S, g0 N5 Y/ E+ X

  36. 3 r$ O8 {& g- I( i* ?
  37.     HAL_DMA_DeInit(&UART2TxDMA_Handler);   
    # l% F  W6 G8 J% w
  38.     HAL_DMA_Init(&UART2TxDMA_Handler);( @4 k: {/ z" n0 G! |
  39. }
    8 M( z: z9 I+ L# f

  40. $ s3 o# i1 V, i
复制代码

8 `9 ^7 m/ W& c$ F) A0 U4 w- q4 K- f8 e/ ~( _; \& G- [  w
收藏 评论0 发布时间:2021-12-17 12:04

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版