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

STM32Cube生成的库函数使用心得

[复制链接]
xlunchun 发布时间:2019-6-30 18:31
用HAL_SPI_Receive_DMA(&hspi1, pBuffer, NumByteToRead);    HAL_UART_Receive_DMA(&hspi1, pBuffer, NumByteToRead);
, F3 S7 O1 h1 c2 W' _' t0 i$ n4 V9 m; K' o
带DMA的接的,不能在此函数下面紧接着使用 这pBuffer中的数据,因为这些函数设置好传输参数,传输刚开始,pBuffer中还没有接收完数据。在这个时候如果是和芯片传数据,更不能关闭,芯片的使能。, X3 H+ B3 S& x+ I/ p. Q
1,可以在此类函数下面设置延时等待,然后操作pBuffer.  ?" i# Z5 Z4 \1 D4 ?
2,可以在DMA中断回调函数中操作数据。使用DMA传输,STM32Cube默认使能DMA传输完成中断,最终会调用HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);! f4 w1 C' L- H; D1 L$ v( t8 l
3,可先判断while(hspi1.State!=HAL_SPI_STATE_READY);STM32Cube生成的代码中,时时指示着各模的状态,传输时状态为忙。: V2 |/ y; v! K( t
     State在   SPI_HandleTypeDef结构中定义;9 N; D0 {; @8 k/ b6 |
, L$ x: W3 V  ]7 n7 l# k0 C
7 g( A+ V% E! e
用DMA传输的函数调用顺序:
8 x  N& q% Q0 J4 K( Z1 ~. U( F1,HAL_SPI_Receive_DMA(&hspi1, pBuffer, NumByteToRead);
0 k+ a6 }* L/ N$ k9 O, B   功能:调用HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size);因为在主机模时要利用发数据的时钟来接收,然后就是开启DMA各中断,链接回调函数 hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt;,确保开启SPI,设置DMA触发位。( ?$ |9 i$ N. j8 W1 g" @5 U) m
2,中断流程:* k2 F. [$ j/ d1 Y
void DMA1_Channel2_IRQHandler(void)
5 z: ~; u, Y- M" M{  HAL_DMA_IRQHandler(&hdma_spi1_rx);}# |; q" c# `: K
* F8 m8 A3 h- P4 Z* b
HAL_DMA_IRQHandler(&hdma_spi1_rx);中 hdma->XferCpltCallback(hdma); 因为 hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt;
, m6 R9 Y$ Q' B1 u等于调用了SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma);其中又调' F4 u9 R( v- G* V
用了HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);该函数是用编写应用代码人地方。9 G" T  J2 ^% K# J+ A

. l% O9 I- a0 E* l# c
) \, F. Z1 u7 x' J/ @$ Q- W5 c9 T/ q
" M( i2 U& U, T! K3 W5 J8 @

: p# f% k! b' g, R9 _9 U
, H( I5 J  O$ A0 n6 C: @4 d  m0 @

9 ~3 t; g; K9 `& T6 E% X* s' X9 f" O* V9 \$ `

0 R$ q7 l; Y9 o2 y
) U* |4 V( n6 t" p  S

4 O5 Q, [! f" \  B. B9 ?- O/ t# C, l+ d2 }( R* ?  e0 o
, O9 n8 E8 c2 x; M- r6 X

. L# I9 {( P  `6 V0 m/ n7 v5 M8 m

% |  H/ x; t1 |4 ?4 B
% x4 g. Z$ E* T

8 J% K' I9 Z1 G0 Q0 F2 B( J
0 f$ i, E" v: M1 m8 I8 R
. U, r+ ]4 ~: |$ W7 ~/ e

# B# \. [4 R1 G! ?% s% k
6 z& Q% G" a( K/ c

7 Y. v: @! g3 ~; y
  H+ x. S, }$ ~9 _

2 y  R9 r; S7 w
) W6 B8 K6 K; e

7 M( R6 E. J3 V5 \. f
" J) @+ m& |; [: m/ D' F7 F
赞 收藏 评论0 发布时间:2019-6-30 18:31

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版