概述2 n9 S* a) K5 Z2 o1 P7 I
SPI有四种工作模式:在开发板中w25q16芯片中使用的是mode0。
, P! A& H" S0 |0 b! j" y4 ]5 L- U) r1 A" g
4 S& L! @; l/ _8 y- K: e r, \& d
) I2 E; t" G$ r8 q8 `
3 a i7 P+ i0 q7 _2 f3 R+ V: y$ J) p3 M7 J) m. D+ \
0 ?" h6 W2 s' V0 \
- n1 @- p: v- E8 R* T2 x代码实验" w& ]1 J; n$ H( I; |
GitHub项目地址:W25Q16-SPI-Demo
0 o* {) v! ~1 v
6 ^. [4 p) S+ W- E- d2 m3 t1、CubeMx中芯片选择STM32G071RBTx,新建工程
+ k" N7 C# \- z
5 {- ~4 q1 W8 b8 L' s' y' m& {2、开启SWD调试、HSE
6 t# B+ M* P- z$ b* Y, Z$ n9 S0 E1 ]! z; }- l
9 n* U- R7 V+ ^8 Y: @, J
( S x* ]2 T/ O8 e1 }$ F* b m
" l- C; x0 @1 Q5 D3 J$ |3、开启USART1 ,设置波特率115200、8bit、None(无奇偶检验)、停止位17 R/ P1 y5 n3 j3 F: k
" z: U4 E2 L- ]0 I5 g/ O$ J8 l
( y- i1 e, P- ?! j& s. D6 F) p
8 E; N; p1 R& l( R6 X. T, J7 ~+ S4、 设置PB11为SPI2_MOSI,PB13为SPI2_SCK,PB14为SPI2_MISO,PB12为GPIO_Output,PB12设置为推挽,默认上拉模式。8 @. S% h. E/ Z. z1 p
" F5 q5 G/ [# o! V) ?, A+ A7 o: [! J2 d# ?) b' |
) o: P( ~4 i' K' S* d5、使能SPI2,选Full-Duplex Master模式,Hardware NSS Signal为Disable,预分频系数为16,SPI的速率就为4MBits
$ \% i3 ^: _- n" U \; C# F9 @! t1 w U" L
$ V5 |! s8 Z& H3 w: Q& m* H
7 Y/ |$ {4 i, F' k- J6、 设置时钟树
& {. @8 a- Y3 k8 ]: ~; a( a
) M x- i- t% t3 y8 I
4 s$ s1 [& f/ y# _4 N) O; o2 L; B0 ^. B ~+ I. ^
7、 设置工程属性
. ~8 e e8 ?' U# G
/ k! @2 u1 o$ T" M
$ h9 q6 R4 c! A/ s. _
0 g6 o( a3 T" R2 V- |) `/ H _
4 K2 O$ u/ c# F8 O5 e3 }/ C( L$ @7 s7 d& |4 w
! B5 b% g# @/ W* K
W25Q16芯片命令表:
D0 [1 c0 P' r, f9 b, u7 m( }1 @ t+ U! N6 p: T) M! k8 ^9 H
1 M: Z5 {3 \! \, `; O. }
0 ?2 K; o* h2 x6 c* f3 f% H
4 I3 _+ Y i1 [. N |