STM32入门——按键篇(按键按下LED亮放开LED灭)+编程思路

开发平台:STM32codeMX、keil5。

芯片型号:STM32F103C8T6

第一个项目:按键控制LED亮灭

电路原理图:

思路:

第一步:LED控制

  1. 确定LED为输出端口:首先,需要明确LED(发光二极管)作为输出设备,这意味着它将根据GPIO(通用输入输出)的信号状态来发光或不发光。
  2. 连接LED与GPIO:将LED的一端连接到GPIO输出端口,另一端连接到电源(通常是3V或5V),然后将LED的另一端连接到GND(接地)端。这样,当GPIO输出高电平时,LED将被点亮;当GPIO输出低电平时,LED将熄灭。

第二步:按键输入

  1. 确定按键为输入端口:按键作为输入设备,其状态(按下或未按下)需要通过GPIO来检测。
  2. 连接按键与GPIO:将按键的一端连接到GPIO输入端口,另一端连接到电源(通常为3V或5V),然后将按键的另一端连接到GND。这样,当按键按下时,GPIO检测到的信号为低电平;当按键未按下时,GPIO检测到的信号为高电平。
  3. 消抖处理:由于按键按下和释放时可能会产生短暂的抖动(即信号在稳定状态之前短暂波动),因此在软件中需要加入消抖处理。消抖处理通常包括等待一定时间(如10ms)后确认信号状态是否持续不变,以确保只在按键稳定按下时触发响应。

第三步:结合LED与按键的逻辑

  1. 综合控制逻辑:将LED的控制与按键的输入逻辑结合。具体实现方式可以是:
    • 当GPIO检测到按键按下(即检测到低电平信号)时,输出高电平信号到LED的控制端,从而点亮LED。
    • 当按键释放(即检测到高电平信号)时,LED的控制端保持低电平,LED熄灭。

通过以上步骤,可以实现当按键被按下时LED点亮的功能。

操作流程:

1. 新建工程

  • 打开STM32CubeMX软件。
  • 在菜单栏选择“文件”(File)。
  • 在下拉菜单中选择“新建项目”(New Project)。
  • 在弹出的窗口中,从芯片列表中选择STM32F103C8T6型号的芯片。
  • 点击“确认”或“下一步”继续。

2. 配置端口

  • 在STM32CubeMX界面的左侧菜单中,展开“RCC”选项。
  • 根据原理图配置外部高速时钟(HSE)和外部低速时钟(LSE)。如果原理图中只有一个时钟源,则选择第三个选项。
  • 接着,配置系统核心(System Core),在sys下选择调试模式(Debug),并选择串行线调试(Serial Wire)。
  • 在界面右侧点击“Pinout view”按钮,进入引脚配置界面。
  • 在PB0引脚上配置为GPIO输出(GPIO output)。
  • 在PA0引脚上配置为GPIO输入(GPIO input)。
  • 点击左侧的GPIO选项,选择PA0引脚,并在GPIO Pull-up/Pull down选项中选择Pull-up(上拉)。

3. 工程保存

  • 在“Project Manager”中,输入项目名称(如LED)。
  • 选择项目存放的文件夹(Project Location)。
  • 在工具链/IDE选项中选择MDK-ARM。
  • 设置最小版本(min version)为V5。
  • 勾选“Code generator”选项,选择仅生成必要的库文件(Cody only the necessary library files)。
  • 勾选“Generate peripheral initalization as a pair of .c/.h files”选项,以生成外设初始化的.c和.h文件。
  • 点击“GENERATE CODE”按钮生成代码。

4. 打开新建的工程

  • 使用STM32CubeMX生成的项目文件,打开刚刚新建的工程。
  • 在MDK-ARM或其他支持的IDE中,加载生成的工程文件,开始编程和调试工作。

以上步骤详细描述了如何在STM32CubeMX中创建一个新工程,并配置了所需的GPIO端口。

5、编写程序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值