Всем доброго дня.
Суть проблемы:
Имеется драйвер STLED316, третий день пытаюсь его победить.
Ни в какую.
Ниже выкладываю листинг функции конфигурирования, если есть кто работал с этим драйвером прошу помочь.
char data[8];
#define clk_set() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET)
#define clk_reset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)
#define disp_write() clk_set(); HAL_Delay(10); clk_reset()
#define stb_high() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET)
#define stb_low() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET)
#define led_set() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET)
#define led_reset() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET)
#define WRITE_COMMAND 0x00
#define READ_COMMAND 0x40
#define FIXD_ADDRESS 0x20
#define INCREMENT_ADDRESS 0x00
#define CHIP_CONFIG_PAGE (0x02 << 3)
#define CHIP_CONFIG_ADDRESS 0x00
#define CHIP_CONFIGURATION 0xFD //6 digits,8segments,constand brightness all
#define DIGIT_BRIGHTNESS_PAGE (0x02 << 3)
#define DIGIT_BRIGHTNESS_ADDRESS 0x10 //0X1-0X3
#define DIGIT_BRIGHTNESS 0x77
#define LED_BRIGHTNESS_PAGE (0x03 << 3)
#define LED_BRIGHTNESS_ADDRESS 0x1 //0X1-0X3
#define SEGMENT_DATA_PAGE (0x00 << 3)
#define SEGMENT1_DATA_ADDRESS 0x00 //0X0-0X5
#define SEGMENT2_DATA_ADDRESS 0x01
#define SEGMENT3_DATA_ADDRESS 0x02
#define SEGMENT4_DATA_ADDRESS 0x03
#define SEGMENT5_DATA_ADDRESS 0x04
#define SEGMENT6_DATA_ADDRESS 0x05
void startCommand() {
stb_low();
HAL_Delay(1);
}
void endCommand() {
stb_high();
HAL_Delay(1);
}
void disp_init()
{
data[0]=0x0E;
startCommand();
sendcommand(1); // Switch OFF
endCommand();
// Set 4 digits mode
startCommand();
data[0]=CHIP_CONFIG_PAGE + CHIP_CONFIG_ADDRESS + INCREMENT_ADDRESS + WRITE_COMMAND;
data[1]=0xE4;
data[2]=0x77;
data[3]=0x77;
data[4]=0x77;
sendcommand(5);
endCommand();
startCommand();
data[0]=LED_BRIGHTNESS_PAGE + LED_BRIGHTNESS_ADDRESS + INCREMENT_ADDRESS + WRITE_COMMAND;
data[1]=0x77;
data[2]=0x77;
data[3]=0x77;
data[4]=0x77;
sendcommand(5);
endCommand();
data[0]=0x0D;
startCommand();
sendcommand(1);
endCommand(); // Switch ON
}