本帖最后由 tcdbobo 于 2019-12-9 13:56 编辑
您好,首先程序也是参考了论坛里各位前辈改的。我用的芯片是stm32f410RB,自己画的板子。也是STM32CubeMX配置的,HAL库编写,驱动2片74HC595显示2位数码管。现在的问题是,程序里写的是显示0和1.但实际效果是11.不知道是哪里的问题,把程序填上来。
/*****定义部分******/ uint8_t TX_Data[2]={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); } /****************/ 如下图,74HC595的Q1位有数据,Q2就不亮了。 |