EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
0 R! V3 k* } d* V" z
如上图,一个字节的数据没发完CS就拉高了。% Q8 A/ E/ T' X! V5 C
芯片是GD32F103CBT6,使用STM32标准库。 配置: void SPI2_Config(void)) I; a |. {: g9 Z0 F
{
5 ~9 N9 t4 m& M3 l ?1 \ SPI_InitTypeDef SPI_InitStructure;" T% M6 Y2 E0 m/ U& a0 r& f
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);# E# q7 Y) _) T* _0 @4 }0 k) t% k
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//双线双向全双工
; i/ ?" V5 D) e+ Y, ]! x SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//设置为主SPI: i# u! M$ {6 e( J8 m( M
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//8位帧结构6 Y- R) Y2 t/ P2 l5 y Q( \
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;//时钟悬空高) P% W7 b) b5 r5 Z( [
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//第二个时钟沿! \0 h5 @+ T: h4 t) Z. V
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//内部NSS信号由SSI位控制
% O4 V7 F' r" p( ~) Z7 K* o% D SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;//预分频值为2 SPI_BaudRatePrescaler_23 n; [3 X! D# h6 I+ i- W
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//数据传输从MSB位开始
g+ J! o! [ Z4 F SPI_InitStructure.SPI_CRCPolynomial = 7;//用于CRC值计算的多项式
. f/ p, ~- ^& y! a' w& L SPI_Init(SPI2,&SPI_InitStructure);//初始化配置
2 @1 G( w6 W. O( ~8 W" p2 V, B5 e" \/ T: D SPI_Cmd(SPI2,ENABLE);//使能或者失能SPI外设- n& o, P* G2 ~* \5 `. P' z( n
} void OLED_Send_1_Byte(u8 Data)
8 Z& r8 _6 N$ H" Z. l( O; T- ?{
+ V: R' C% O a7 w2 B6 L+ { OLED_CS_Set_0;
8 i) a; y# N. \ SPI_I2S_SendData(SPI2,Data);
8 X2 p. X N0 f4 f2 p2 K1 q2 d while((SPI2->SR & SPI_SR_TXE)==0);
: b8 i% }( [' s/ r OLED_CS_Set_1;
' @! q- M- e3 |} 执行:OLED_Send_1_Byte(0x55); 1 e% i$ g5 @+ L0 V9 F) U
|