单片机STM32入门——(2)按键控制1.理论分析1.1按键电平分析1.2按键扫描程序逻辑2.程序编写2.1按键扫描程序2.1.1按键扫描程序的头文件2.1.2按键扫描程序2.2主程序 在第一次的学习中已经提到了,我们在需要修改控制灯的状态的时候,都需要重新修改并下载程序,那么我们本次将通过按键来控制LED灯的亮灭。 分别由两个按键控制LED1和LED21.理论分析1.1按键电平分析理论情况按键
stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。 RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。 Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失, RAM可以
转载 2019-02-22 10:04:00
178阅读
2评论
先找到芯片的Reference manual手册,找到EEPROM的内存地址EERPOM定义#define EEPROM_BASE_ADDR 0x08080000 #define EEPROM_BYTE_SIZE 0x03FFvoid eeprom_test_write();void eeprom_test_read();这里使用的是一次写入4个字节//eeprom写测试void eepro
原创 2021-12-01 10:39:53
10000+阅读
本文内容:本文主要介绍STM32中的中断系统,并用中断进行点灯和串口通信。一、何为中断中断是当CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理,CPU暂停当前的工作,转去处理事件B,当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件A。 类比一下,可以想象成在做饭时突然来了一个电话,你去接电话停止做饭,打完电话后,回来接着做。二、NVIC介绍NVIC 是嵌套向量中断
转载 8小时前
0阅读
前言:我们都知道开发板上除了有经典的流水灯之外,还有一个必备的练习硬件--按键(key),下面继续来完成按键的配置。 1、通过查看原理图,找出按键(key)的管脚名字和对应芯片上的I/O口,四个I/O分别为PA0、PE2、PE3和PE4。 2、配置按键I/O口这里要注意的是工作模式要改成输入模式,不是led的输出模式,并且不需要设置输出模式。GPIO_InitStructure
STM32中执行中断主要分三部分:1.配置NVIC_Config()函数 2.配置EXTI_Config()函数 3.编写中断服务函数 (注:本文章所用代码为中断按键代码,实现了按键进入中断从而控制LED亮灭)配置NVIC_Config()函数 NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。NVIC_Config()函数代码如下:stati
可能会有朋友跟我刚使用这个芯片关于MSI校准的时候有过疑惑如何校准? 这里讲讲校准原理。   首先,必须说,校准是必须的。 在不校准的情况下0~25度时候精度是1%,超过这个温度精度偏差可能在+/- 3%以上。 校准后精度可以达到0.05%,这相当于delay 1000ms 的误差只有1000ms * 0.005。   校准准备: 1. 准备一个板子,焊接好32.768K LSE外部晶振 2. 准
原创 2018-11-22 18:00:23
4699阅读
2点赞
1评论
0. 写在前面          没有太多时间更新,可能偶尔有时间就更新一些。          因为突然有项目用到了stm32f10x系列并且是电池驱动的,所以需要对功耗进行优化,其他CM3核心系列应该也同样适用。1. 背景       Stm32的低功耗模
转载 6月前
369阅读
最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠。 [cpp] view plain copy print ? 驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源! \arch\arm\mach-s5pv210 static struct gpio_keys_button gpio_bu
待机唤醒1. 低功耗模式简介2. 硬件设计本实验用D1指示灯提示系统正常运行,指示灯熄灭表示进入待机模式,K_UP按键用来唤醒待机模式,并使用串口1打印相关调试信息D1指示灯K_UP按键USART1串口3. 软件设计3.1 STM32CubeMX设置RCC设置外接HSE,时钟设置为72MPC0设置为GPIO推挽输出模式、上拉、高速、默认输出电平为高电平PA0设置为GPIO下拉输入模式USART1选择为异步通讯方式,波特率设置为115200Bits/s,传输数据长度为8Bit
原创 2022-01-04 11:41:11
1186阅读
在做低功耗产品的时候读取芯片温度和当前电压是十分重要的一件事情。通过当前供电电压可以知晓电池电量是否低于水平值实现电池缺电报警。读取芯片温度也很重要,可以在使用内部振荡器的时候通过校准算法根据温度变化来实现实时校准芯片(另外文章有介绍)。如果不使用或尽量少使用外部元器件来实现这两个功能是摆在我们面前一个很重要的事情,遗憾的是现在网上的资料非常混乱,基本上直接使用总有点那么别扭。在这里hoowa告诉
原创 2018-12-05 13:48:45
10000+阅读
2点赞
1.低功耗模式简介系统或电源复位后,微处理器处于运行状态,运行状态下HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时(例如等待某个外部事件),可以利用多个低功耗模式来节省功耗。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32提供了3种低功耗模式,以达到不同层次的降低功耗的目的:*睡眠模式(CM3内核停止工作,外设仍在运行),功耗最
原创 2020-12-16 23:37:02
846阅读
记录一下自己学习的过程1.硬件连接用的是c8t6的最小系统板,通过面包板连接按键,将PB11口用作按键输入。同时还连接了一块oled的屏方便查看现象。2.代码部分作了一些简化。首先是头文件部分#ifndef __KEY_H #define __KEY_H #include "sys.h" #include "delay.h" #include "OLED.h" #define KEY_NULL
按键输入实验1. 实验介绍本实验介绍如何使用STM32F103的IO口作为输入使用。IO口作为输入使用时,是通过读取IDR的内容来读取IO口的状态的。本实验利用板载的4个按键,来控制板载的两个LED的亮灭和蜂鸣器。其中KEY_UP控制蜂鸣器;K1控制D1,按一次亮再按一次灭;K2控制D2,按一次亮再按一次灭;K3同时控制D1和D2,按一次它们的状态就翻转一次2. 硬件设计用到的硬件资源有:指示灯D1、D2蜂鸣器BUZ4个按键:KEY_UP、K1、K2、K3硬件连接原理图如下,注意K
原创 2022-01-04 11:41:14
439阅读
1点赞
1.实验介绍本实验介绍如何使用STM32F103的IO口作为输入使用。IO口作为输入使用时,是通过读取IDR的内容来读取IO口的状态的。实验中利用板载的4个按键,来控制板载的两个LED的亮灭和蜂鸣器。其中KEY_UP控制蜂鸣器;K1控制D1,按一次亮再按一次灭;K2控制D2,按一次亮再按一次灭;K3同时控制D1和D2,按一次它们的状态就翻转一次2.硬件设计用到的硬件资源有:*指示灯D1、D2*蜂鸣
原创 2020-12-17 00:13:37
726阅读
STM32CubeMX输入配置---按键  本示例主要讲解IO口输入模式的应用,以按键驱动为例来学校输入模式配置方法。本次实验所用开发板有3个按键,其中一个为复位按键,另外两个则可用户自行驱动。我们采用板载的2个按键来实现对LED灯开关控制。1.硬件接口  SW2为复位按键,已直接接到芯片复位引脚上,SW3接在PB0上、SW4接在PB1上。按键按下均为低电平。2.软件设计2.1 GPIO引脚模式简
原创 精选 2022-11-23 14:49:14
1269阅读
目录一、按键硬件图1、硬件原理2、输入方式选择二、功能实现1、按键GPIO配置2、按键扫描函数3、LED翻转宏定义4、主程序参考一、按键硬件图1、硬件原理        按键的硬件原理图如图,右侧接3.3V,有电容并联作为硬件消抖,非按下状态时PA0接地为低电平,按下状态时导通接高电平。2、输入方式选择       
stm32数码管显示实时时间并有闹钟功能功能描述数码管介绍数码管芯片段选与位选驱动数码管显示代码实验思路完整代码Led.hLed.cKey.hKey.cbeep.hbeep.csmg.hsmg.ctimer.htimer.cmain.c实验难点解决方法总结源码获取 功能描述通过stm32开发板上面的按键来实现时钟的调节和闹钟调节并响铃数码管介绍2个74HC595来驱动8位共阳数码管 共阳数码管0
最近在使用低功耗模式产品,比如STM32L051C8T6。 这款产品的低功耗设计非常优秀。比如STOP模式大家经常使用的,可以做到nA级别。 但是,如果只是STOP模式低功耗,运行模式高,电池寿命还是短。 首先介绍下STOP模式:a. 在这个模式下一定可以做到400nA的电流b. 如果做不到,请考虑是否将全部IO配置为模拟输入模式c. 是否外围挂有其他元器件。 运行模式功耗主要来自这几个地方:1.
原创 2018-11-22 17:47:17
10000+阅读
3点赞
  • 1
  • 2
  • 3
  • 4
  • 5