第一个程序(STM32F103点灯)

点亮LED

  1. 看原理图确定控制LED的引脚
  2. 看主芯片手册确定如何设置/控制引脚
  3. 写程序

LED有很多种,像插脚的,贴片的。
在这里插入图片描述
它们长得完全不一样,因此我们在原理图中将它抽象出来。

在这里插入图片描述
嵌入式系统中,一个LED的电阻非常低,I = U/R,因此I非常大,会将LED烧坏,所以需要串联一个电阻。
在这里插入图片描述
点亮LED需要通电源,同时为了保护LED,加个电阻减小电流。
控制LED灯的亮灭,可以手动开关LED,但在电子系统中,不可能让人来控制开关,通过编程,利用芯片的引脚去控制开关。
在这里插入图片描述

在这里插入图片描述
LED的驱动方式,常见的有四种。
方式1:使用引脚输出3.3V点亮LED,输出0V熄灭LED。
方式2:使用引脚拉低到0V点亮LED,输出3.3V熄灭LED。

有的芯片为了省电等原因,其引脚驱动能力不足,这时可以使用三极管驱动。
方式3:使用引脚输出1.2V点亮LED,输出0V熄灭LED。
方式4:使用引脚输出0V点亮LED,输出1.2V熄灭LED。

由此,主芯片引脚输出高电平/低电平,即可改变LED状态,而无需关注GPIO引脚输出的是3.3V还是1.2V。
所以简称输出1或0:
逻辑1–>高电平
逻辑0–>低电平

电路基础

在这里插入图片描述
当左边电压大于右边电压时,电流就会通过。
在这里插入图片描述
当P级电压大于N级电压时,三极管就会导通。

GPIO引脚操作方法

GPIO:General-purpose input/output,通用输入/输出口。

GPIO模块一般结构:

  • 有多组GPIO,每组有多个GPIO。
  • 使能:电源/时钟
  • 模式(Mode):引脚可用于GPIO或其它功能
  • 方向:引脚Mode设置为GPIO时,可以继续设置它是输出引脚,还是输入引脚。
  • 数值:对于输出引脚,可以设置寄存器让它输出高、低电平。对于输入引脚,可以读取寄存器得到引脚的当前电平。
    在这里插入图片描述

GPIO寄存器的2种操作方法

不能影响到其他位

直接读写:读出、修改对应位、写入

// 要设置bit n
val = data_reg;
val |= (1 << n);
data_reg = val;

// 要清除bit n
val = data_reg;
val &= ~(1<<n);
data_reg = val;

set-and-clear protocol:
set_reg,clr_reg,data_reg三个寄存器对应的是同一个物理寄存器

要设置bit n:set_reg = (1<<n);
要清除bit n:clr_reg = (1<<n);

在这里插入图片描述
在这里插入图片描述

复位和时钟控制RCC

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

怎么访问寄存器

unsigned int *p=0x40010800;
*p = val;
val = *p;

在这里插入图片描述
在这里插入图片描述

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值