STM32CubeMx笔记--P3.读取按键

内容简介
通过STM32Cu配置进行读取IO的输入电平
IO:
在这里插入图片描述
配置过程

  1. 创建工程和笔记.P2的方法一样,选择STM32F103ZE的芯片
  2. IO口配置图
    在这里插入图片描述
  3. 配置时钟
    在这里插入图片描述
  4. 工程配置时,记得把下图中的 √ 给选上
    在这里插入图片描述
  5. 产生代码了,和笔记P2一样
  6. 在工程的main中添加以下代码,然后就可开开心心的按按键了
if(HAL_GPIO_ReadPin(S1_GPIO_Port,S1_Pin)==0)
{
    HAL_Delay(100);
    if(HAL_GPIO_ReadPin(S1_GPIO_Port,S1_Pin)==0)
        HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET);
}
if(HAL_GPIO_ReadPin(S2_GPIO_Port,S2_Pin)==0)
{
    HAL_Delay(100);
    if(HAL_GPIO_ReadPin(S2_GPIO_Port,S2_Pin)==0)
        HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET);
}
if(HAL_GPIO_ReadPin(S3_GPIO_Port,S3_Pin)==0)
{
    HAL_Delay(100);
    if(HAL_GPIO_ReadPin(S3_GPIO_Port,S3_Pin)==0)
    {
        HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
        HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);
        
    }
}

写在最后
步骤2中的自定义标签的宏定义在main.h文件里面,这玩意有点意思
在这里插入图片描述

03-14
<think>好的,我现在需要处理用户关于TM1668芯片的查询。用户希望查找相关的技术资料和应用方案。首先,我应该确认TM1668的基本信息,比如生产厂商、主要功能和典型应用。TM1668通常用于LED驱动和键盘控制,所以需要找到其数据手册和应用笔记。 接下来,我需要回忆一下常见的资料来源,比如厂商的官方网站,如天微电子(Titan Micro Electronics)。用户可能需要下载数据手册,面会有详细的电气参数和电路连接图。此外,应用方案可能包括数码管显示驱动、矩阵键盘扫描等。 用户可能遇到的问题包括如何连接TM1668到微控制器,如何配置寄存器,或者解决显示闪烁的问题。我应该建议他们查阅数据手册中的典型应用电路,并参考示例代码。同时,需要注意TM1668的通信协议,通常是SPI或I2C,但具体要看数据手册。 另外,可能有一些常见的应用案例,比如家电控制面板、工业仪表显示等。用户可能想知道如何设计电路或编写驱动代码,这时候推荐具体的章节或附录会有帮助。如果用户遇到问题,比如LED亮度不够,可能需要调整占空比或电阻值,这也需要参考技术文档。 最后,要确保用户知道如何获取这些资料,比如提供厂商的网址或第三方资源平台,如EEVblog论坛或优快云。如果有已知的应用方案,比如与STM32或Arduino的配合使用,也应该提及相关的参考设计或开源项目。</think>### TM1668芯片相关资料与应用方案 TM1668是一款LED驱动及键盘扫描控制芯片,广泛应用于数码管显示、矩阵键盘等场景。以下是其技术资料与应用方案的整理: #### 一、技术资料 1. **数据手册** - 关键参数:支持8段×16位LED驱动,内置键盘扫描(最大13×3矩阵),通信接口为串行SPI[^1] - 典型电路:包含级联连接示意图、按键消抖电路设计 - 下载途径:建议访问厂商**天微电子(Titan Micro Electronics)官网**或第三方平台如[Alldatasheet](https://www.alldatasheet.com) 2. **寄存器配置** - 显示模式:通过命令字设置6种亮度等级和开关状态 - 键盘扫描:需配置扫描使能位和去抖时间参数[^2] #### 二、典型应用方案 1. **数码管驱动方案** ```c // 示例SPI发送函数(STM32 HAL库) void TM1668_Send(uint8_t cmd, uint8_t data[]) { HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi1, &cmd, 1, 100); for(int i=0; i<8; i++) HAL_SPI_Transmit(&hspi1, &data[i], 1, 100); HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET); } ``` - 注意:需按手册要求控制STB引脚时序[^1] 2. **矩阵键盘方案** - 电路设计:在P3口接3×8按键矩阵,需外接10kΩ上拉电阻 - 数据读取:通过读取键值寄存器获取按下状态,响应时间建议>5ms[^2] #### 三、常见问题解决 1. **显示闪烁** - 检查电源电压是否稳定(推荐4.5-5.5V) - 调整亮度设置命令字(固定地址模式易出现此问题) 2. **按键误触发** - 修改去抖时间配置寄存器(默认4ms可增至8ms) - 在软件端增加二次验证逻辑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Hwang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值