stm32 - 如何在 stm32 上使用 SPI 将 32 位字传输到 GPS 接收器芯片 (MAX2769C)
问题描述
我正在尝试在半双工主模式下使用 SPI 配置带有 stm32f446re MCU 的 GPS 接收器芯片(MAX2769C)。该芯片需要一个 32 位字(4 位地址和 28 位数据)。这是数据表的第 21 页。
我的第一个问题是,当 cubemx 允许的最大位格式是 16 位传输时,我如何传输 32 位字。我的第二个问题是,我必须生成一个正好为 16,384 MHZ 的时钟来为 MAX2769C 芯片供电(这不是 SPI 的数据时钟 SCK)。所以我在 cubemx 中选择了 MCO1 并玩弄了时钟配置,直到我得到 16.384 MHZ。这将如何影响 SPI 速度?我尝试使用 hal_spi_transmit 使用 4 字节的 unint8_t 数组,但这不起作用。
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_9, 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], 4, 10);
//Bring CS high - Deactivate
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);
这是我第一次在这个平台上提问。先感谢您!
解决方案
推荐阅读
- constructor - 学习 Python 中的构造函数
- playwright - 拒绝浏览器上的相机权限
- python - 如何模拟从熊猫中的示例函数返回的值?
- c++ - 关于unique_ptr所有权转移的问题
- reactjs - 导入多个 React 组件
- sql - 为什么在 sql server 中基于聚集索引的第二个键搜索并不能提高性能?
- python - 你如何为名为 makeWordLengthDict 的函数编写一个程序,该函数将单词列表作为其唯一参数,并在 python 中返回一个字典
- embedded-linux - 如何在 AST2500 上启用 USB 2.0 主机?
- java - 如何从 Uber Cadence 中的 Java 代码获取打开/关闭的工作流列表?
- c++ - 如何在 Windows-10 上的 Visual Studio Code 中设置和配置 MongoDB C/C++ (11/17) 驱动程序