From e328ebef585cea2351b37117b2d5ac4978ecd3c0 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 11 二月 2025 14:57:23 +0800
Subject: [PATCH] 1111111

---
 keil/sn74hc595.c |  165 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 124 insertions(+), 41 deletions(-)

diff --git a/keil/sn74hc595.c b/keil/sn74hc595.c
index 14f9088..0d6bf4a 100644
--- a/keil/sn74hc595.c
+++ b/keil/sn74hc595.c
@@ -1,63 +1,146 @@
 
 #include "sn74hc595.h"
+uint8_t QA,QB,QC,QD,QE,QF,QG,QH;
 void IO_control_init(void)
 {
 //SDA->SER
-io_open_drain_set(SER_PIN, 0);
-io_pin_mux_set(SER_PIN,IO_FUNC0);//把原先io SDA变为普通GPIO
-gpio_pin_set_dir(SER_PIN , GPIO_DIR_OUT, 0);//复用原先GPIO引脚为SER
-io_pull_set(SER_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4);
-//SRCLK
-io_pin_mux_set(SRCLK_PIN,IO_FUNC0);
-gpio_pin_set_dir(SRCLK_PIN , GPIO_DIR_OUT, 0);
-io_pull_set(SRCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4);	
+    io_open_drain_set(SER_PIN, 0);
+    io_pin_mux_set(SER_PIN,IO_FUNC0);//把原先io SDA变为普通GPIO
+    gpio_pin_set_dir(SER_PIN , GPIO_DIR_OUT, 0);//复用原先GPIO引脚为SER
+    io_pull_set(SER_PIN , IO_PULL_UP, IO_PULL_UP_NONE);
+//SRCLK  111
+    io_pin_mux_set(SRCLK_PIN,IO_FUNC0);
+    gpio_pin_set_dir(SRCLK_PIN , GPIO_DIR_OUT, 0);
+    io_pull_set(SRCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL0);
 //RCLK
-io_pin_mux_set(RCLK_PIN,IO_FUNC0);
-gpio_pin_set_dir(RCLK_PIN , GPIO_DIR_OUT, 0);
-io_pull_set(RCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4);	
+    io_pin_mux_set(RCLK_PIN,IO_FUNC0);
+    gpio_pin_set_dir(RCLK_PIN , GPIO_DIR_OUT, 0);
+    io_pull_set(RCLK_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL0);
 }
 
 void IO_LED_control_change(uint8_t data)
 {
-for(int i=0;i<8;i++){
-	uint8_t temp=data&1;
-	if(temp)//写入低位数据
-		SER_1;
-	else
-		SER_0;
-	SRCLK_1;//将数据放入移位寄存器
-	SRCLK_0;
-	data>>=1;
-}
-RCLK_1;//将数据存入存储器并输出
-RCLK_0;
+    for(int i=0; i<8; i++) {
+        uint8_t temp=data&1;
+        if(temp)//写入低位数据
+            SER_1;
+        else
+            SER_0;
+        SRCLK_1;//将数据放入移位寄存器
+        SRCLK_0;
+        data>>=1;
+    }
+    RCLK_1;//将数据存入存储器并输出
+    RCLK_0;
 }
 //高电平开启power,低电平关闭power
 void gps_air780_power_change(uint8_t gps_state,uint8_t air_state)
 {
-gps_power_state=gps_state;
-air780_power_state=air_state;
-updata_led_power_state();//更新控制引脚
+    gps_power_state=gps_state;
+    air780_power_state=air_state;
+    update_led_power_state();//更新控制引脚
 }
-void updata_led_power_state(void)
+
+void update_led_power_state(void)
 {
-uint8_t control_state=air780_power_state<<7|gps_power_state<<6|motor_power_state<<5|uwb_state<<4|gps_success_state<<3|air780_success_state<<2|chaging_state<<1|changed_state;
-IO_LED_control_change(control_state);
+	                         //QA //QB  //QC //QD  //QE  //QF  //QG  //QH
+    uint8_t control_state=QA<<7|QB<<6|QC<<5|QD<<4|QE<<3|QF<<2|QG<<1|QH;
+    IO_LED_control_change(control_state);
 }
 void blink_led(uint8_t*state)
-{*state=~*state;
-updata_led_power_state();
-delay_us(100);
-*state=~*state;
-updata_led_power_state();
+{   if(*state==0)
+        *state=1;
+    else {
+        *state=0;
+    }
+    update_led_power_state();
+    delay_us(1000);
+    if(*state==0)
+        *state=1;
+    else {
+        *state=0;
+    }
+    update_led_power_state();
 }
-void uwb_led_on(void)
+
+//void motor_power_on(void)
+//{
+//    motor_power_state=1;//uwb亮起
+//    update_led_power_state();
+//}
+//void gps_led_on(void)
+//{
+//    gps_success_state=1;//uwb亮起
+//    update_led_power_state();
+//}
+//void gps_led_off(void)
+//{
+//    gps_success_state=0;//uwb灭
+//    update_led_power_state();
+//}
+//void uwb_led_on(void)
+//{
+//    uwb_state=1;//uwb亮起
+//    update_led_power_state();
+//}
+//void uwb_led_off(void)
+//{
+//    uwb_state=0;//uwb灭
+//    update_led_power_state();
+//}
+//void air780_led_on(void)
+//{
+//    air780_success_state=1;//uwb亮起
+//    update_led_power_state();
+//}
+//void air780_led_off(void)
+//{
+//    air780_success_state=0;//uwb灭
+//    update_led_power_state();
+//}
+//马达
+void MOTOR_QA_state(uint8_t state)
 {
-		uwb_state=1;//uwb亮起
-		updata_led_power_state();
+    QA=state;//QA高电平
+    update_led_power_state();
 }
-void uwb_led_off(void)
+void QB_state(uint8_t state)
 {
-		uwb_state=0;//uwb灭
-		updata_led_power_state();
-}
\ No newline at end of file
+    QB=state;//QA高电平
+    update_led_power_state();
+}
+void QC_state(uint8_t state)
+{
+    QC=state;//QA高电平
+    update_led_power_state();
+}
+void RED_LED_QD_state(uint8_t state)
+{
+    QD=state;//QA高电平
+    update_led_power_state();
+}
+void GREEN_LED_QE_state(uint8_t state)
+{
+    QE=state;//QA高电平
+    update_led_power_state();
+}
+void BT_LED_QF_state(uint8_t state)
+{
+    QF=state;//QA高电平
+    update_led_power_state();
+}
+void LORA_LED_QG_state(uint8_t state)
+{
+    QG=state;//QA高电平
+    update_led_power_state();
+}
+void UWB_LED_QH_state(uint8_t state)
+{
+    QH=state;//QA高电平
+    update_led_power_state();
+}
+//void QA_OFF(void)
+//{
+//    QA=0;//QA高电平
+//    update_led_power_state();
+//}
\ No newline at end of file

--
Gitblit v1.9.3