问题描述
我正在尝试使用在半双工主模式下使用SPI的stm32f446re MCU配置GPS接收器芯片(MAX2769C)。该芯片期望一个32位字(4位地址和28位数据)。这是datasheet的第21页。
我的第一个问题是,当cubemx允许的最大位格式为16位传输时,如何传输32位字。 我的第二个问题是,我必须产生一个精确的16,384 MHZ的时钟来馈入MAX2769C芯片(这不是SPI的数据时钟SCK)。因此,我在cubemx中选择了MCO1并进行了时钟配置,直到获得16.384 MHZ。这将如何影响SPI速度? 我尝试使用4个字节的unint8_t数组使用hal_spi_transmit,但这不起作用。
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
HAL_Delay(10);
//Set IF centre frequency to 3.9 MHz
//SPI read data
//1. Put CS low - Activate
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_RESET);
//2. Write data (0A2919A3) to slave
spiTX1Data[0] = 0x0A; // Transmit register address 0000
spiTX1Data[1] =0x29; // Set FCEN to 001101 & FBW to 00 in configuration 1
spiTX1Data[2] =0x19;
spiTX1Data[3] =0xA3;
HAL_SPI_Transmit(&hspi2,spiTX3Data,4,10);
//3. Read
HAL_SPI_Receive(&hspi2,&spiTX1Data[3],10);
//Bring CS high - Deactivate
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_SET);
这是我第一次在此平台上提问。预先谢谢你!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)