ananbo 发表于 2019-12-5 16:41:39

您好,首先程序也是参考了论坛里各位先辈改的。我用的芯片是stm32f410RB,自己画的板子。也是STM32CubeMX配置的,HAL库编写,驱动2片74HC595显示2位数码管。现在的问题是,程序里写的是显示0和1.但实际效果是11.不知道是哪里的问题,把程序填上来。
/*****定义部分******/
uint8_t TX_Data={0xFC,0x60};//想显示0和1
uint8_t data[]={      
       0xFC,/*0*/
       0x60,/*1*/……………….
};
uint16_t num = 0;
/****************/


/******主程序*********/
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
while (1)
{
   hc74959_display(num);
}
}
/****************/


/*****595控制部分*****/
void hc74959_display(uint16_t num)
{
   {
   HAL_SPI_MspInit(&hspi1);//使能SPI1
    HAL_SPI_Transmit(&hspi1,TX_Data,2,100);            
}
   /* 让锁存输出一个高电平脉冲 */
    HAL_GPIO_WritePin(LAT_GPIO_Port, LAT_Pin ,GPIO_PIN_SET);
   HAL_Delay(100);
   HAL_GPIO_WritePin(LAT_GPIO_Port, LAT_Pin , GPIO_PIN_RESET);
    HAL_Delay(100);
    HAL_GPIO_WritePin(LAT_GPIO_Port,LAT_Pin , GPIO_PIN_SET);                     
}
/****************/      

页: 1 [2]
查看完整版本: STM32F410RB HAL SPI驱动数码管模块,求指导