试用GD32 第2个程序,也发一个跑马灯

[复制链接]
 楼主| wlzeagle 发表于 2013-8-1 20:10 | 显示全部楼层 |阅读模式
看论坛挺冷清的,发一个最入门的跑马灯,不过延时随便用软件弄的,没有用systemtick,代码如下:

#include         "stm32f10x.h"

void        led_init(void);
void        PA8_ON(void);
void        PD2_ON(void);
void        delay(uint32_t dly);


int main(void)
{
        led_init();

        for(;;)
        {
        PA8_ON();
        delay(100);
        PD2_ON();
        delay(100);               
        }
       
}

void        led_init(void)
{
        RCC->APB2ENR |= 0x00000024;                        //打开GPIOA,GPIOD的时钟
       
        GPIOA->CRH &= 0xFFFFFFF0;                        //复位 GPIOA 的PA8端口控制
        GPIOA->CRH |= 0x00000003;                        //设置 GPIOA 的PA8推挽输出
        GPIOA->ODR |= 0x00000100;                        //设置 GPIOA 的PA8输出1
       
        GPIOD->CRL &= 0xFFFFF0FF;               
        GPIOD->CRL |= 0x00000300;       
        GPIOD->ODR |= 0x00000004;
}


void        PA8_ON(void)
{
        GPIOA->ODR &= ~0x00000100;                        //设置 GPIOA 的PA8输出0
        GPIOD->ODR |= 0x00000004;       
}

void        PD2_ON(void)
{
        GPIOA->ODR |= 0x00000100;                        //设置 GPIOA 的PA8输出1
        GPIOD->ODR &= ~0x00000004;       
       
}

void        delay(uint32_t dly)
{
       
        dly *=72000;
        while(dly--);

}

miniko 发表于 2013-8-2 09:15 | 显示全部楼层
沙发。楼主的程序好像只是点亮了两个灯啊,没有循环闪烁吧?
 楼主| wlzeagle 发表于 2013-8-2 13:07 | 显示全部楼层
miniko 发表于 2013-8-2 09:15
沙发。楼主的程序好像只是点亮了两个灯啊,没有循环闪烁吧?

开发板上验证过的,你可以试试
kkzz 发表于 2013-8-27 15:54 | 显示全部楼层
楼主应该再跑跑跑马灯的。
huangjia22 发表于 2014-1-26 19:08 | 显示全部楼层
楼主搞个流水灯的
dinghui28 发表于 2014-1-26 19:23 | 显示全部楼层
听好了
pengqihong2013 发表于 2014-1-26 19:35 | 显示全部楼层
很不错
chenhaibin1990 发表于 2014-1-27 23:06 | 显示全部楼层
挺好,继续分享哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

266

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部