单片机通过模拟SPI驱动LD3320模块
-
仅完成识别部分!仅完成识别部分!仅完成识别部分!
-
根据手册推荐使用3.3V,而不是5V驱动,3.3V驱动芯片会更稳定。手册和资料请自行去某宝网的云盘搜LD3320下载。
-
中断引脚IRQ、读写引脚WR、还有复位引脚RST,加上SPI必需的片选引脚CS、时钟线SCKL、MOSI和MISO一共7个引脚全部都需要接单片机。
-
此次驱动用的是最小系统板GD32国产的单片机,芯片参考例程的硬件SPI写的不清楚,原理图直接没标出来接的哪个端口和引脚,所以只能用软件SPI模拟了。不过GD32核心用的还是Cortex-M3架构,跟ST大体差不多。移植STM32主要改下引脚配置即可。
-
移植厂家的例程,只需要改引脚配置和字节发送的函数其实就差不多了,其他全部复制粘贴。
-
因为是软件模拟SPI通信,引脚随意选择,MISO和IRQ配置成浮空输入,其他都配置成推挽输出。位带操作,串口打印和延时函数需要根据自己的板子具体配置,不多赘述。
/*宏定义一些引脚*/
#define LD_CS PDout(1) //片选
#define LD_SCK PDout(2) //时钟线
#define LD_MO PDout(3) //主输从入
#define LD_MI PDin(4) //主入从输
#define LD_RST PDout(5) //LD3320芯片复位
#define LD_WR PDout(6) //读写
/*引脚配置 移植需修改*/
static void LD3320_gpio_cfg(void)
{
rcu_periph_clock_enable(RCU_GPIOD);
/* 配置PD1 PD2 PD3 PD5 PD6为推挽输出 */
gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1);
gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3);
gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5)