在第一批设备中使用的是STM32F103产品,后来为了节省一点成本,打起了F030的主意,毕竟2块钱的东西,速度也可以,于是画板子,调程序,发现NRF2401就是不通讯,也是反复测试,抓波形,就是没有数据,后来在发现时钟是16位的,在回过来去网上找资料,发现SPI的发送数据默认是16位,所以找到库函数,发现有SPI_SendData8(SPI1,TxByte);这个,说明F030和103不一样,于是将发送函数改为这个,(SPI_PORT->DR = TxByte; //发送数据)括号里是103的发送,改为8位发送之后,立马通讯成功,附代码如下,有需要的拿走,已经成功
void spi_init( void )
{
GPIO_InitTypeDef SpiGpioInitStructer;
SPI_InitTypeDef SpiInitStructer;
/** SPI引脚配置 */
RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA , ENABLE ); //打开端口时钟
RCC_APB2PeriphClockCmd( SPI_PORT_CLK, ENABLE );
SpiGpioInitStructer.GPIO_Pin = SPI_CLK_GPIO_PIN;
SpiGpioInitStructer.GPIO_Mode = GPIO_Mode_AF;//复用模式
SpiGpioInitStructer.GPIO_OType= GPIO_OType_PP;