代码拉取完成,页面将自动刷新
ADIS16505 | MCU |
---|---|
CS* | SS* |
SCLK | SCLK |
DIN | MOSI |
DOUT | MISO |
注意:RST*引脚接高阻或拉高
See Theory of Operation -> SPI in datasheet for detail.
:exclamation::exclamation::exclamation: SPI初始化一定要正确
Processor Setting | Description |
---|---|
Master | SS* |
SCLK ≤ 2MHz (≤ 1MHz for burst mode) | Maximum serial clock rate |
SPI Mode 3 | CPOL=1 (polarity), CPHA=1 (phase) |
MSB First Mode | Bit sequence |
8-Bit or 16-Bit Mode | Shift register and data length |
注意,ADIS默认应将SPI配置为16-Bit Mode,但本驱动库也兼容了8-Bit Mode,通过定义宏 ADIS16505_SPI_DataSize_8BIT
来使用该模式。
主要文件目录
/root
├── docs/
│ └── adis16505.pdf
├── adis16505.c
├── adis16505.h
├── platform_specific_impl.c
├── platform_specific_impl.h
└── README.md
其中,adis16505.c & adis16505.h移植时不需要更改
platform_specific_impl.c & platform_specific_impl.h需要根据移植平台适配更改
需要实现的函数包括:
void delay_ms(uint32_t nms); // 毫秒延时
void delay_us(uint16_t nus); // 微秒延时
void ADIS16505_Select(); // 片选拉低
void ADIS16505_Deselect(); // 片选拉高
uint8_t SPI_ADIS16505_WR_Word(const uint16_t word, uint16_t* pRxData); // SPI全双工读写单字 (16bits)
uint8_t SPI_ADIS16505_WR_Words(const uint16_t* pTxData, uint16_t* pRxData, uint16_t num); // SPI全双工读写多字 (16bits)
通过定义宏(e.g.PLATFORM_STM32_USE_HAL
)来进行平台管理,这里详见代码
使用该驱动库的方法为:
/* USER CODE BEGIN Includes */
#include "adis16505.h"
/* USER CODE END Includes */
/* USER CODE BEGIN PV */
ADIS16505 imu; // 定义结构体变量
/* USER CODE END PV */
/* SYSTEM BEGIN Init */
// Clock_Init();
// GPIO_Init();
// SPI_Init();
// ...
/* SYSTEM END Init */
ADIS16505_Init(&imu); // 初始化IMU
/* USE IMU */
// e.g. ADIS16505_BurstRead(&imu);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。