MAX5481数字电位器,SIP通讯或者脉冲步进,这里的驱动是SPI驱动。数据手册https://shaynerain.com/shaynerain/file/MAX5481-MAX5484.pdf
-
首先是SPI的配置
-
驱动较为简单,先发送命令然后是数据
#define WRITE_WIPER 0X00 #define WRITE_EEPROM 0X20 #define COPY_EEPROM_TO_WIPER 0X30 void max5481_write(SPI_HandleTypeDef* hspi, uint8_t cmd, uint16_t data) { uint8_t tx_buf[3]; uint16_t i=0; tx_buf[0] = cmd; tx_buf[1] = (uint8_t)(0xff&(data>>2)); tx_buf[2] = (uint8_t)(0xff&(data<<6)); CS_L; //HAL_Delay(1); while(i++>1000){}i=0; if(cmd == WRITE_WIPER) { HAL_SPI_Transmit(hspi, &tx_buf[0], 3, 500); } else HAL_SPI_Transmit(hspi, &tx_buf[0], 1, 500); while(i++>1000){}i=0; //HAL_Delay(1); CS_H; }
闻道有先后 术业有专攻