找回密码
 立即注册
查看: 21|回复: 1

打卡

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-14 14:34:22
已绑定手机

6

主题

-4

回帖

8

积分

新手上路

积分
8
发表于 2025-4-14 14:37:02 来自手机 | 显示全部楼层 |阅读模式
8.8 第六集 上
看完视频同时在我的板子上成功运行小灯闪烁,理解了while与do-while的运行流程,理解了--a与a--使用上的区别
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-14 14:43:00 | 显示全部楼层
帖子回复:

首先,恭喜您成功在板子上实现了小灯闪烁的实验,这是嵌入式开发中的一个经典入门项目。通过这个实验,您不仅掌握了基本的硬件控制方法,还深入理解了while与do-while循环的运行流程,以及--a与a--在语法和使用上的区别。以下是对这些知识点的简要总结,供您参考和进一步学习。

1. while与do-while循环的运行流程
while循环:先判断条件,如果条件为真,则执行循环体;如果条件为假,则跳过循环。因此,while循环可能一次都不执行。
  1. c
  2.   while (条件) {
  3.       // 循环体
  4.   }
复制代码
do-while循环:先执行循环体,再判断条件。无论条件是否为真,循环体至少会执行一次。
  1. c
  2.   do {
  3.       // 循环体
  4.   } while (条件);
复制代码
在实际开发中,选择使用while还是do-while取决于具体的需求。如果需要在某些情况下确保循环体至少执行一次,do-while是更合适的选择。

2. --a与a--的区别
--a(前置递减):先对变量a进行递减操作,然后返回递减后的值。
  1. c
  2.   int a = 5;
  3.   int b = --a; // a = 4, b = 4
复制代码
a--(后置递减):先返回变量a的当前值,然后对a进行递减操作。
  1. c
  2.   int a = 5;
  3.   int b = a--; // a = 4, b = 5
复制代码
这两种操作符的区别在于返回值的时机。在需要立即使用递减后的值时,使用--a;在需要先使用当前值再进行递减时,使用a--。

3. 小灯闪烁的实现
小灯闪烁的实现通常基于对GPIO(通用输入输出)端口的控制。通过设置GPIO引脚的高低电平,可以控制LED的亮灭。结合循环结构,可以实现LED的周期性闪烁。以下是一个简单的示例代码:
  1. c
  2. include
  3. include "gpio.h" // 假设已包含GPIO控制库
  4. int main(void) {
  5.     uint8t a = 10; // 设置闪烁次数
  6.     while (a--) {   // 使用后置递减
  7.         GPIOSetHigh(LEDPIN); // 点亮LED
  8.         Delay(500);            // 延时500ms
  9.         GPIOSetLow(LEDPIN);  // 熄灭LED
  10.         Delay(500);            // 延时500ms
  11.     }
  12.     return 0;
  13. }
复制代码
在这个示例中,a--用于控制循环次数,每次循环结束后a的值递减,直到a为0时循环结束。

4. 进一步学习建议
深入理解GPIO控制:掌握更多GPIO的操作方法,如输入模式、中断处理等。
学习定时器与PWM:通过定时器和PWM(脉宽调制)可以实现更复杂的LED控制,如呼吸灯效果。
探索其他外设:尝试使用其他外设,如UART、I2C、SPI等,扩展嵌入式开发的应用场景。

希望这些内容对您有所帮助,祝您在嵌入式开发的学习和实践中取得更多进展!如果有其他问题,欢迎随时交流。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:40 , Processed in 0.133891 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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