打印

HLK-W801-KIT-V1.1

[复制链接]
309|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2024-4-22 08:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DA, GPIO, IO, gp, pi, w801
/*************HLK-W801-KIT-V1.1********************/
/*************1.3' OLED IIC************************/
/*************ID:共同学习stm8**********************/
/*************多平台™一切都是运算******************/
/*************20240421*****************************/

//0X0000 GPIO 数据寄存器 GPIO_DATA RW 读写 GPIO 当前数据 0X180B
#define                GPIOA_DATA                        (*(volatile unsigned int*)(0x40011200+0x0000))
//0X0004 GPIO 数据使能寄存器 GPIO_DATA_EN RW 配置 GPIO_DATA 的使能位 0XFFFF
#define                GPIOA_DATA_EN                (*(volatile unsigned int*)(0x40011200+0X0004))
//0X0008 GPIO 方向控制寄存器 GPIO_DIR RW 配置 GPIO 方向 0X0000
#define                GPIOA_DIR                        (*(volatile unsigned int*)(0x40011200+0X0008))
//0X000C GPIO 上拉控制寄存器 GPIO_PULL_EN RW 配置 GPIO 上拉 0XFFFF
#define                GPIOA_PULL_EN                        (*(volatile unsigned int*)(0x40011200+0X000c))
//0X001C GPIO 下拉控制寄存器 GPIO_DN_ENA RW 配置 GPIO 下拉 0X0000
#define                GPIOA_DN_ENA                        (*(volatile unsigned int*)(0x40011200+0X001c))


//0X0000 GPIO 数据寄存器 GPIO_DATA RW 读写 GPIO 当前数据 0X180B
#define                GPIOB_DATA                        (*(volatile unsigned int*)(0x40011400+0x0000))
//0X0004 GPIO 数据使能寄存器 GPIO_DATA_EN RW 配置 GPIO_DATA 的使能位 0XFFFF
#define                GPIOB_DATA_EN                (*(volatile unsigned int*)(0x40011400+0X0004))
//0X0008 GPIO 方向控制寄存器 GPIO_DIR RW 配置 GPIO 方向 0X0000
#define                GPIOB_DIR                        (*(volatile unsigned int*)(0x40011400+0X0008))
//0X000C GPIO 上拉控制寄存器 GPIO_PULL_EN RW 配置 GPIO 上拉 0XFFFF
#define                GPIOB_PULL_EN                        (*(volatile unsigned int*)(0x40011400+0X000c))
//0X001C GPIO 下拉控制寄存器 GPIO_DN_ENA RW 配置 GPIO 下拉 0X0000
#define                GPIOB_DN_ENA                        (*(volatile unsigned int*)(0x40011400+0X001c))


/**************************************************/
//                         _______________________
//                        |        1.3' OLED IIC                |
//                        |        GND|VCC|SCL|SDA                |
//                        |                128*64                        |
//                        |_______________________|
//显示SCL-----PA2
#define                X_SCL_L                GPIOA_DATA        &=~(1<<2)
#define                X_SCL_H                GPIOA_DATA        |=(1<<2)
//显示SDA-----PA1
#define                X_SDA_L                GPIOA_DATA        &=~(1<<1)
#define                X_SDA_H                GPIOA_DATA        |=(1<<1)
/**************************************************/

#define                led1_l                GPIOB_DATA        |=(1<<5)
#define                led1_h                GPIOB_DATA        &=~(1<<5)
#define                led2_l                GPIOB_DATA        |=(1<<25)
#define                led2_h                GPIOB_DATA        &=~(1<<25)
#define                led3_l                GPIOB_DATA        |=(1<<26)
#define                led3_h                GPIOB_DATA        &=~(1<<26)
#define                led4_l                GPIOB_DATA        |=(1<<18)
#define                led4_h                GPIOB_DATA        &=~(1<<18)
#define                led5_l                GPIOB_DATA        |=(1<<17)
#define                led5_h                GPIOB_DATA        &=~(1<<17)
#define                led6_l                GPIOB_DATA        |=(1<<16)
#define                led6_h                GPIOB_DATA        &=~(1<<16)
#define                led7_l                GPIOB_DATA        |=(1<<11)
#define                led7_h                GPIOB_DATA        &=~(1<<11)

/**************************************************/

void                xianshi();                //显示
void                yanshi_1s();        //延时1秒
/**************************************************/
unsigned char                liushui_a1;
/**************************************************/
int main(void)

{
unsigned char                liushui_b1;

GPIOB_DATA_EN                |=(1<<5)+(1<<25)+(1<<26)+(1<<18)+(1<<17)+(1<<16)+(1<<11);                //使能
GPIOB_DIR                        |=(1<<5)+(1<<25)+(1<<26)+(1<<18)+(1<<17)+(1<<16)+(1<<11);                //输出
GPIOB_DATA                        |=(1<<5)+(1<<25)+(1<<26)+(1<<18)+(1<<17)+(1<<16)+(1<<11);                //输出高
/**************************************************/
while (1)
{
liushui_a1                =0x01;
liushui_b1                =7;
while(liushui_b1--)
{
xianshi();                                        //显示       
yanshi_1s();       
liushui_a1                <<=1;                //左移一位
}


}       
    return 0;


}
/**************************************************/
void                xianshi()                //显示
{
if(liushui_a1&0x01){led1_h;}        else{led1_l;}       
if(liushui_a1&0x02){led2_h;}        else{led2_l;}
if(liushui_a1&0x04){led3_h;}        else{led3_l;}
if(liushui_a1&0x08){led4_h;}        else{led4_l;}
if(liushui_a1&0x10){led5_h;}        else{led5_l;}
if(liushui_a1&0x20){led6_h;}        else{led6_l;}
if(liushui_a1&0x40){led7_h;}        else{led7_l;}       
}
/**************************************************/
void                yanshi_1s()        //延时1秒
{
volatile unsigned int                x,y;       
        for(x=1000;x>0;x--)
                for(y=2500;y>0;y--);
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/


main.zip

1.09 KB

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

300

主题

457

帖子

60

粉丝