zhangbo
2025-03-14 4ac8869c86534136e97ed4bf738a83e65cdefafa
keil/sn74hc595.c
@@ -1,21 +1,21 @@
#include "sn74hc595.h"
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);
//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);
}
//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);
////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);
//}
void IO_LED_control_change(uint8_t data)
{
@@ -25,12 +25,12 @@
            SER_1;
        else
            SER_0;
        SRCLK_1;//将数据放入移位寄存器
        SRCLK_0;
//        SRCLK_1;//将数据放入移位寄存器
//        SRCLK_0;
        data>>=1;
    }
    RCLK_1;//将数据存入存储器并输出
    RCLK_0;
//    RCLK_1;//将数据存入存储器并输出
//    RCLK_0;
}
//高电平开启power,低电平关闭power
void gps_air780_power_change(uint8_t gps_state,uint8_t air_state)
@@ -51,12 +51,23 @@
        *state=0;
    }
    update_led_power_state();
    delay_us(100);
    delay_us(1000);
    if(*state==0)
        *state=1;
    else {
        *state=0;
    }
    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)
@@ -68,4 +79,14 @@
{
    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();
}