新手入门
- 积分
- 7
- 金钱
- 7
- 注册时间
- 2018-8-9
- 在线时间
- 2 小时
|
1金钱
如题 , 将STM32F103C8 设置为 SPI 从机 接收主机数据 。 配置代码如下 :
SPI_InitTypeDef SPI_InitStructure ;
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex ;
SPI_InitStructure.SPI_Mode = SPI_Mode_Slave ;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b ;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High ;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Hard;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2 ;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB ;
SPI_InitStructure.SPI_CRCPolynomial = 7 ;
SPI_Init(SPI1, &SPI_InitStructure) ;
SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, ENABLE);
SPI_Cmd(SPI1, ENABLE);
本意是想设置 为 CLK闲时状态为高电平 , 下降沿采样。 采样波形如下 :
但是发现实际数据 , 是时钟脚的每个边沿都会采样数据(上升沿 + 下降沿) , 如图,实际采样到的数据居然是 0xFF(高4Bit 溢出 , 只保留了低4位)
不知道是为何原因 , 很不解。望请各位指点一下
|
-
SPI时序图
-
将数据格式改成16Bit时采样到的数据
|