找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5505|回复: 2
收起左侧

STM32F103流水灯的实现(库函数版)

[复制链接]
ID:75926 发表于 2015-4-4 00:59 | 显示全部楼层 |阅读模式
/*********************************************************************

开发板:STM32神舟I号
实验结果:LED流水灯
编程方式:使用STM32库函数
编程环境:Kei_MDK4.12
时间:2015.3.25
***********************************************************************/
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#define PCL GPIOC->BRR //使PC输出低电平
#define PCH GPIOC->BSRR //使PC输出高电平
void delayms(unsigned int ms);//延时函数
void led(uint8_t a,uint8_t b);//LED显示程序a表示第几个,b表示灭0或亮1

int main(void)
{
uint8_t n;
GPIO_InitTypeDef  GPIO_InitStructure;

    /* 使能LED对应GPIO的Clock时钟 */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能LED1灯对应的GPIOC管脚时钟

    /* 初始化LED的GPIO管脚,配置为推挽输出 */  //设置端口
    GPIO_InitStructure.GPIO_Pin = 0xFFFF;//GPIO_Pin_2|GPIO_Pin_3 ;   //LED灯对应的GPIO_Pin_2和3端口
//设置对端口的模式
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //设置为 推挽(Push-Pull)输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//输出速率选择50MHZ(2,10,50三种速率)
    GPIO_Init(GPIOC, &GPIO_InitStructure);//调用GPIO初始化函数
    while (1)

{
for(n=0;n<8;n++)
{
led(n,1);//第几个亮
delayms(500);//延时
}
}   
}

void delayms(unsigned int ms)//延时函数
{
unsigned char a,b;
while(ms--)
        for(b=254;b>0;b--)
            for(a=13;a>0;a--);
}
void led(uint8_t a,uint8_t b)//LED显示程序
{
PCL=0xffff;
if(b){PCH=1<<a;}
else {PCL=1<<a;}
}




回复

使用道具 举报

ID:1019546 发表于 2023-4-27 20:31 | 显示全部楼层
有一个error啊
回复

使用道具 举报

ID:291668 发表于 2023-4-30 12:55 | 显示全部楼层
学会思路就行了,重点还是自己要领悟!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表