2489|8

128

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【RISC-V MCU CH32V103测评】LED灯交替闪烁 [复制链接]

  本帖最后由 jennyzhaojie 于 2021-1-26 00:20 编辑

板载的仅有外设资源要数LED灯了,其电路原理图如图1所示,那我们就用好它吧。

图1 LED电路原理图

其实使用LED灯的主要目的就是学习I/O的使用,值得点赞的是这2个LED灯是不占固定资源的,也就是说用到哪里连哪里。

那如何该如何实现LED灯的交替闪烁呢?

思路就是:

1)将2个I/O口设为输出,并使其与2个LED灯相连,这里用PA0控制LED1, 用PA1控制LED2;

2)使用变量i和j来控制高低电平的输出,并使2个I/O的高低电平输出在时间上错开, 令i=0时PA0输出高电平的语句为GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET)),令j=1时PA0输出低电平的语句为GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));

3)使用延时函数按时对2个LED灯执行高低电平输出的状态切换,切换高低电平输出的语句为GPIO_WriteBit(GPIOx, GPIO_Pin_y, (z==0) ? (z=Bit_SET):(z=Bit_RESET)),延时函数为 Delay_Ms();

配置PA0和PA1为输出口的函数为:

void GPIO_Toggle_INIT(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}

其主程序为:

int main(void)
{
      u8 i=0,j=1;
      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
      Delay_Init();
      GPIO_Toggle_INIT();
      //GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_SET);
      //GPIO_WriteBit(GPIOA, GPIO_Pin_1,Bit_RESET);
      while(1)
      {
            Delay_Ms(250);
            GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));
            GPIO_WriteBit(GPIOA, GPIO_Pin_1, (j==0) ? (j=Bit_SET):(j=Bit_RESET));
      }
}

经编译,其编译结果如图2所示。

经下载,其运行效果如图3所示。

图3 运行效果

最新回复

代码只看懂了部分,但是感觉,运行后,灯会交替闪烁的比较快。  详情 回复 发表于 2023-1-28 16:34

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
初学者很有用,这个资料真的很不多,可以学习到

点评

感谢支持  详情 回复 发表于 2021-1-25 13:55
 
 
 

回复

128

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
kennyxuxu 发表于 2021-1-25 10:38 初学者很有用,这个资料真的很不多,可以学习到

感谢支持

 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

4
 

谢谢分享,点灯能学不少东西

点评

学习的起步点!  详情 回复 发表于 2021-1-26 00:18
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

128

帖子

0

TA的资源

一粒金砂(高级)

5
 
freebsder 发表于 2021-1-25 22:27 谢谢分享,点灯能学不少东西

学习的起步点!

点评

就是板子太丑,就是个学生作品,完全没有其他开发板那种高大上的范  详情 回复 发表于 2021-1-26 22:33
 
 
 

回复

1942

帖子

2

TA的资源

版主

6
 

感谢分享,沁恒做的还是不错的!

点评

外设再丰富些就更好了,哈哈。。。  详情 回复 发表于 2021-1-27 00:32
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

7
 

就是板子太丑,就是个学生作品,完全没有其他开发板那种高大上的范

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

128

帖子

0

TA的资源

一粒金砂(高级)

8
 
w494143467 发表于 2021-1-26 21:41 感谢分享,沁恒做的还是不错的!

外设再丰富些就更好了,哈哈。。。

 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

9
 
代码只看懂了部分,但是感觉,运行后,灯会交替闪烁的比较快。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表