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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
* R7 r$ Z& E6 ?0 v4 N7 z- O, X
STM32F1的SPI配置问题,卡在等待发送完成,高手帮忙看下哪里配置的有问题??$ W9 N+ v" ^  R* U) @
% ^$ P5 B; I0 `
void SPI2_Init(void)
- Y+ V" O' Y6 q) A# I{     
2 e: D5 q7 L- Y# f- a/ a! T8 q  GPIO_InitTypeDef  GPIO_InitStructure;
4 ]# H/ g# z, k- V' U2 R- H  SPI_InitTypeDef  SPI_InitStructure;8 R3 }9 p4 s4 E3 G
    6 x* t7 w5 Y+ e; Z2 @9 a* j
    RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB, ENABLE);# \' O' F; }" O; f/ U8 I7 R
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);; s  e$ D7 K) D! Z/ U3 l
    RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
4 R, F4 J- e. s' S, \   
  w; ?2 A4 H3 l- W& M6 }, Q, S     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                //Flash Power
# z- J0 e; L: b1 [& ^0 c. N     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
$ O5 _$ K) M2 S' k, e3 T- C     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;% B* v, J1 f+ y# x  b
     GPIO_Init(GPIOB, &GPIO_InitStructure);
- f4 e3 R7 d" m( M  
( [# x0 o1 M0 L     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                //CS  接 NSS
$ I' v% y( i0 F8 X4 @+ R     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         " Q0 ~  |* M2 L, _: ~8 n
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
7 |. \( L/ L0 C6 v. x. o: U2 ~     GPIO_Init(GPIOB, &GPIO_InitStructure);
5 y2 W# {1 p4 i- E( d    0 T( l8 e7 `& l2 I/ d" E
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;   //SCK,MOSI
% Q4 g( a8 |; i6 s    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
! Z& P* ^/ \/ v7 w% N" M1 B    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;" u- V# e. c- P; }7 J
    GPIO_Init(GPIOB, &GPIO_InitStructure);
* T- B+ [8 Q( Q0 |( f
: z! S9 a, g3 z# |    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;                            //MISO
% J4 {; N; D* Z  }& C% L3 _! o    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG;
# M5 D6 p2 p0 A( H4 G    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
% Y& {2 G: f% a9 c    GPIO_Init(GPIOB, &GPIO_InitStructure);
4 w+ I" Q, Z- Y% y, x" s& @   
8 ~+ u; P* l) ?/ v5 y  x# Y4 z    GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  
; u8 c. }0 }6 y+ h9 W+ `6 g    & _  [2 }/ s3 M, N/ @: |
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  
- @; g5 D1 h- f& X    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;       5 T( ^; S* q6 F. o2 p
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;   2 ^5 ]- I9 H. @/ D
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;      
  T+ R& f4 i* ^: i' E3 I    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;    , J, \1 T- J  p( c. s
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;     ; u! l4 I- j7 c3 |( A; u
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;      
' _9 e  {3 Q& C    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;   ' [, f1 e3 j; O8 K& E) r
    SPI_InitStructure.SPI_CRCPolynomial = 7;   
& h! m& ]0 |8 c! Z, t2 ?* L    SPI_Init(SPI2, &SPI_InitStructure);  7 M" c8 p9 y8 W1 t. N
    SPI_Cmd(SPI2, ENABLE);
1 M3 O/ a; w1 I) g0 ~! @' J     
# ^$ i% b8 J, j5 S) T    //SPI_SSOutputCmd(SPI2, ENABLE);+ J4 p5 \( _! @) C; N( M
//    if(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) != RESET){
& n8 B. m2 \7 d" M. O//                SPI_I2S_ReceiveData(SPI2);
% B3 e2 T0 C( q7 F& J4 e# ^//                SPI_I2S_CleaRFlag(SPI2, SPI_FLAG_CRCERR);
  @' I) f/ ]" [) ]+ D8 ]//  }
& e. B7 i- _5 C4 m+ h; s" F) D
% }# N) t% {$ ^9 x( ^' ^  g4 K    SPI2_ReadWriteByte(0xff);   
6 Q. L. U( V+ H$ p# ]}   
: {2 ]7 q/ j: \9 ~( d8 o* I7 Y3 ?* y& k. P( ?8 n: @
uint8_t SPI2_ReadWriteByte(u8 TxData)* W: ?$ O) @* X' E3 [7 Y7 N* G. [
{                     
. l( |* B6 \; w8 P; ^: g" I: y; z6 i" e+ U
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET){} //卡死在这里
) B3 O9 h% {1 B  W& c+ p  m    SPI_I2S_SendData(SPI2, TxData);  6 T' K0 Z, }; a& a4 t3 Z5 ^9 T8 _8 Z
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET){}) d, n" L+ q' f+ e! ^  |& I- f
    return SPI_I2S_ReceiveData(SPI2);               ( _' J8 m) A" j+ ]
}& n) H1 _! L- E9 ?$ ^0 F: d/ ~5 G

该用户从未签到

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

该用户从未签到

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

该用户从未签到

4#
发表于 2021-5-13 14:09 | 只看该作者
看了半天,
  ^1 {- I4 Z' K8 ]6 x. ]RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);这句不对吧,spi2挂在APB1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 09:01 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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