void HC595_Put_Data(void)
{
HAL_GPIO_WritePin(ST_CP_GPIO_Port,ST_CP_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(ST_CP_GPIO_Port,ST_CP_Pin, GPIO_PIN_SET);
}
void HC595_Send_Data(uint8_t send_data)
{
uint8_t i;
for(i=0;i<8;i++)
{
if(send_data&0x80)//判断最高位是否是1
HAL_GPIO_WritePin(DS_GPIO_Port,DS_Pin, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(DS_GPIO_Port,DS_Pin, GPIO_PIN_RESET);
send_data = send_data<<1;
HAL_GPIO_WritePin(SH_CP_GPIO_Port,SH_CP_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(SH_CP_GPIO_Port,SH_CP_Pin, GPIO_PIN_SET);
}
HC595_Put_Data();
}
void HC595_init(void)
{
HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(MR_GPIO_Port,MR_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_RESET);
}
void led_color_Refresh(led_color_TypeDef color)
{
switch(color)
{
case _moff:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_RESET); //OFF
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_RESET);
break;
case _mred:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_SET); //红
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_RESET);
break;
case _mgreen:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_RESET); //绿
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_RESET);
break;
case _mblue:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_RESET); //蓝色
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_SET);
break;
case _myellow:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_SET); //黄色
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_RESET);
break;
case _mpurple:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_SET); //紫色
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_SET);
break;
case _mwhite:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_RESET); //青色
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_SET);
break;
case _mcyan:
HAL_GPIO_WritePin(LED_1_GPIO_Port,LED_1_Pin, GPIO_PIN_SET); //白色
HAL_GPIO_WritePin(LED_2_GPIO_Port,LED_2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_3_GPIO_Port,LED_3_Pin, GPIO_PIN_SET);
break;
default:
break;
}
}
HC595芯片
最新推荐文章于 2024-09-05 22:58:57 发布