找回密码
 注册
关于网站域名变更的通知
查看: 571|回复: 3
打印 上一主题 下一主题

STM32F1的SPI配置问题,卡在等待发送完成,高手帮忙看下哪里配置的有问题??

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-13 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

( `" u- B: t" r+ VSTM32F1的SPI配置问题,卡在等待发送完成,高手帮忙看下哪里配置的有问题??
+ c) L+ m! {, `* b0 p# _8 b
8 J) z, ~/ A& J) f( bvoid SPI2_Init(void)
1 u/ Z: E1 W3 D% B, c{     
  F2 Q- \2 U( u; G4 q; q% u  GPIO_InitTypeDef  GPIO_InitStructure;! S- N' q7 g) {( ^) R6 j0 n
  SPI_InitTypeDef  SPI_InitStructure;
( [' a" E3 P  b3 Z7 E2 A7 X5 H( `3 B   
# B/ S1 @4 ]. T2 m! w    RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB, ENABLE);: {! t, [; i/ {4 B5 a% g& M- U
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);4 O( Z7 t5 `( p6 ?9 x" u
    RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);5 V! F" o( M  x9 |) |
   
2 A: A( k2 o! O! @3 w) ~3 a, x     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                //Flash Power
3 k7 X- k" m3 o, W9 y3 e. P# @2 I. l     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           T8 s* y4 ^! q0 K' O$ _+ @
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;0 J6 d3 \! a* a% T+ f. U7 d
     GPIO_Init(GPIOB, &GPIO_InitStructure);5 _4 m! S4 d9 M9 Y& u
  
* r8 B) E) `( c9 \     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                //CS  接 NSS$ b8 {$ \/ C8 l9 O
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
( b) B. @* I5 v4 z$ b7 c     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;4 b* F' J. J; Y
     GPIO_Init(GPIOB, &GPIO_InitStructure);
& s2 O# R0 O( v2 @5 i9 f   
. f% g0 A( M! `, q  j    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;   //SCK,MOSI1 q; O1 U* v6 S3 n( F7 k
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& l  U6 ~1 o1 @% H4 V. z! u    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;, j( S; h' v6 d/ h9 `% Z/ W$ L
    GPIO_Init(GPIOB, &GPIO_InitStructure);
, o$ Y) w; ?- q$ u0 ~, F, m
* R5 I0 C  z! _( _! \: M    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;                            //MISO7 i# h0 N* P* z0 W
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG;  a7 N. t4 z& D2 P; \, i
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
2 i' e9 m3 l" i: e# v( }. @    GPIO_Init(GPIOB, &GPIO_InitStructure);& d9 S1 Y9 B# N7 z
   
+ h- D2 l* m$ v+ I# f    GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  
$ B( i5 }5 _% J! W& I6 ^    3 F( J$ ^% g7 m! c9 @. I2 \, F
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  
- T; _5 c( T. Q5 i. y- o9 U# S  e    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;      
0 Z7 `1 v: W' F0 a  B( W# O& D    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;   
1 M3 W. Q3 o. L( j2 ^    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;      
% U4 ?# U; U* u6 B    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;    ) d7 A3 U- s8 e
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;     0 a! [4 N) m/ k  O+ M
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;      
5 G! g7 X4 R8 j& E7 c5 ]0 ?    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;   
# w1 B- B$ b' p2 W. _; V4 E    SPI_InitStructure.SPI_CRCPolynomial = 7;     p1 x) L& {: e  [- X0 w
    SPI_Init(SPI2, &SPI_InitStructure);  
# l! U' h2 d# t! |; E* C0 @    SPI_Cmd(SPI2, ENABLE);
2 Q$ P' G) y: k/ o     # C, J0 |  p/ f; z8 e' ?4 }
    //SPI_SSOutputCmd(SPI2, ENABLE);9 x; Z5 V0 U. Z8 [! T" X9 B. F- u
//    if(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) != RESET){" ^. o, o! X) q* P- x; A" y
//                SPI_I2S_ReceiveData(SPI2);
3 m5 {, S8 w: e) p//                SPI_I2S_CleaRFlag(SPI2, SPI_FLAG_CRCERR);( l% U. p& t% e# D! }
//  }! L( ^! F! w# K# K

2 k% s- h% u# a4 |    SPI2_ReadWriteByte(0xff);   
4 G$ W8 H" x% Q0 A/ h" ~1 S$ a}   
" z( b7 L* M3 W2 T
* C" o  I7 e% K5 E* E/ K( K' Q- r3 {! quint8_t SPI2_ReadWriteByte(u8 TxData)% s, m5 P5 n% m
{                      * j% S# h3 ^% o1 f% X

, e3 I. G5 k* |: a& ^  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET){} //卡死在这里
9 V, {+ D& j; X, A$ Z6 \    SPI_I2S_SendData(SPI2, TxData);  5 B( w+ U2 p% J3 d3 V
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET){}/ x9 z( H) k" K9 A( ?# T
    return SPI_I2S_ReceiveData(SPI2);               
  i% \2 F/ d* D* ]0 E! z0 {}
# ~; \% D- F; x/ y# ?

该用户从未签到

2#
发表于 2021-5-13 11:19 | 只看该作者
上面这个只是一部分吧

该用户从未签到

3#
发表于 2021-5-13 14:07 | 只看该作者
这个也看不来个什么呀

该用户从未签到

4#
发表于 2021-5-13 14:09 | 只看该作者
看了半天,
- K* F. _, M) r5 ORCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);这句不对吧,spi2挂在APB1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-25 08:13 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表