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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

& v' @3 t/ `  L9 `STM32F1的SPI配置问题,卡在等待发送完成,高手帮忙看下哪里配置的有问题??
$ N6 M9 g6 r9 r2 s& T( \" u! q, _7 Z: b7 p6 |$ `, c' y
void SPI2_Init(void)
6 O. w6 M* j; Z8 n5 S. q) i{     5 F8 @; ~4 p! a2 b5 t; V7 i2 T
  GPIO_InitTypeDef  GPIO_InitStructure;* X9 J; V3 O: E8 D+ F
  SPI_InitTypeDef  SPI_InitStructure;
4 L" l, x2 }) A   
$ t2 \/ C: F. j1 a1 }! B    RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB, ENABLE);' t0 ~1 s0 f9 a. T5 Z2 Q+ W( ?
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);8 S! e2 Z) R2 Q4 K' F; F- J3 e3 C0 ]! j
    RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
$ e/ }9 [1 i' z. ]' `    , h1 J- k( y/ I3 W' @& [* q
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                //Flash Power8 P2 X$ `: W, E
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
9 i. R+ q8 D" s6 W. ~! F& [5 T     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;# s! v6 J6 T. @3 L9 w# R1 k1 L
     GPIO_Init(GPIOB, &GPIO_InitStructure);
% `1 j5 Y: M2 ?% w& r0 R' Z7 J  
, L# T' R! D- a6 a, v4 _$ N% ^3 G7 u     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                //CS  接 NSS1 y. y0 e( L4 N; w$ B
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         ' Y: G" E4 V% W$ g, w7 [! C
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0 c9 O3 d$ I6 K4 h, S     GPIO_Init(GPIOB, &GPIO_InitStructure);: e" A0 O2 m! F; {/ u
    1 f+ H/ z3 F7 p& s! B" s
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;   //SCK,MOSI
+ P* W8 @( I/ `0 j    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;; @- U& S5 g. e# a: Z
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;* C! B- E; Q2 }
    GPIO_Init(GPIOB, &GPIO_InitStructure);
( G3 u5 _7 V' `# f8 Y  u: A. D8 A: D# N$ |) b
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;                            //MISO
7 y; J* k$ W9 O7 M0 j, w    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG;# H; x+ [$ m- Z0 {. z* q) n
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;7 l' h5 F7 M" R+ x. M
    GPIO_Init(GPIOB, &GPIO_InitStructure);
- D* b1 d+ R. N    / P3 t8 h: W" |8 g! ~
    GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  : `7 B0 {) p7 m
    9 ?6 z1 s/ O1 S, y( I4 D
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  * {1 s4 q2 Y: W+ C- A  z6 y
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;       9 ^9 r5 V! `" H3 [9 ]
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;   
  p8 Y4 S9 c6 M2 G& e# D    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;      
0 h8 E' v6 P: G# v7 L    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;    + h& ]) @" p: \- d& D) o$ d
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;     3 [; A: a3 Z4 H; E6 u; i5 l
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;       & X+ {. t" d; {/ f
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;   
) t% _" H/ Q" ^$ e  J- t5 d    SPI_InitStructure.SPI_CRCPolynomial = 7;   . Q8 n4 A* b7 ~' d  @$ _# t6 S
    SPI_Init(SPI2, &SPI_InitStructure);  
: ^- t( U0 h1 l; K5 W    SPI_Cmd(SPI2, ENABLE);
0 Z1 ]- E' p" `5 ~9 I- C2 Q8 g     
* i( k6 B& t, s/ K    //SPI_SSOutputCmd(SPI2, ENABLE);) m5 P! N& q4 M0 ?1 Q2 Q# \
//    if(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) != RESET){
; g; j' `7 `1 [+ ?1 l//                SPI_I2S_ReceiveData(SPI2);. d7 n% C" F5 T9 K2 n( Z. r
//                SPI_I2S_CleaRFlag(SPI2, SPI_FLAG_CRCERR);
( G5 U1 ^# b: K; A' K  m//  }% r. ~8 _; z# n2 J/ X8 [
, x0 y1 O9 N' q2 v8 x
    SPI2_ReadWriteByte(0xff);   8 f6 k5 J  B9 Z
}     L6 G* a/ }$ ?; t0 C$ @
1 U$ d: [# G, m+ r! W* `/ {) t. U
uint8_t SPI2_ReadWriteByte(u8 TxData)
! C+ U+ V0 |. |( L! W{                     
5 Z' c4 p. R' N, ^8 _7 `9 J; G  S# r' ~
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET){} //卡死在这里
0 r: }, v" ], y$ A% W4 c. W# l    SPI_I2S_SendData(SPI2, TxData);  % W8 A8 q1 w  y2 E4 I: g' C2 p; l
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET){}+ e" I1 h  j9 o, c& r, y6 ?* |
    return SPI_I2S_ReceiveData(SPI2);               
( H/ O2 T) w% J) k% J0 T9 K}  x2 L( ~* N. Z4 \9 a- b# I( F" b& E5 D

该用户从未签到

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

该用户从未签到

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

该用户从未签到

4#
发表于 2021-5-13 14:09 | 只看该作者
看了半天,. A9 L3 _; m. P" S2 c/ S
RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);这句不对吧,spi2挂在APB1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 16:00 , Processed in 0.203125 second(s), 23 queries , Gzip On.

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

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

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