STMCubeMX配置STM32F103ZET6

1 配置时钟

配置RCC。
在这里插入图片描述

配置 SYS。将Timebase Source配置为TIM1, SysTick留给FreeRTOS用。
在这里插入图片描述
注意: 由于第一次配置的时候忘记配置这个步骤,导致工程第一次烧录成功后,后面一直无法烧录,报以下错误:
keil no target connect
Error: Flash Download failed - Target DLL has been cancelled

解决方案:BOOT0拉高, BOOT1拉低,重新上电烧录,烧录成功后断电,再把BOOT0拉低,之后就可以重新烧录了。

配置系统时钟。
在这里插入图片描述

2 配置GPIO

配置控制 LED 的GPIO.
LED_R – PB0: GPIO_Output
LED_G – PB1: GPIO_Output
LED_B – PB5: GPIO_Output
在这里插入图片描述
鼠标左键点击对应的引脚,选择 GPIO_Output.

在这里插入图片描述
所有GPIO输出默认电平为高,推挽输出,带上拉,低速。因为LED另一端连接3.3V电源,所以配置为高电平,默认不点亮LED。

流水灯代码:

  uint16_t time = 100;
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_SET);
  HAL_Delay(time);
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_SET);
  HAL_Delay(time);
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_RESET);
  HAL_Delay(time);

3 配置按键

3.1 轮询方式

Key1 – PA0
Key2 – PG15
Key3 – PC13
Key4 – PE3
在这里插入图片描述

int keyPoll(void)
{
   
  if (HAL_GPIO_ReadPin(KEY1_UP_GPIO_Port, KEY1_UP_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5); //延时 5ms, 按键消抖 
    if(HAL_GPIO_ReadPin(KEY1_UP_GPIO_Port, KEY1_UP_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_UP is pressed\r\n"); 
    } 
  }

  if (HAL_GPIO_ReadPin(KEY2_DOWN_GPIO_Port, KEY2_DOWN_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(HAL_GPIO_ReadPin(KEY2_DOWN_GPIO_Port, KEY2_DOWN_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_DOWN is pressed\r\n"); 
    }
  }

  if (HAL_GPIO_ReadPin(KEY3_LEFT_GPIO_Port, KEY3_LEFT_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(HAL_GPIO_ReadPin(KEY3_LEFT_GPIO_Port, KEY3_LEFT_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_LEFT is pressed\r\n"); 
    }
  }

  if (HAL_GPIO_ReadPin(KEY4_RIGHT_GPIO_Port, KEY4_RIGHT_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957444.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Yearning开源MySQL SQL审核平台

一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用. 本地部署,注重隐私,简单高效的MYSQL审计平台。 它可以通过流程审批,实现真实线上环境sql的审核和执行,还可以回滚执行,能够确保线上SQL更新的可靠性…

【TCP】rfc文档

tcp协议相关rfc有哪些 TCP(传输控制协议)是一个复杂的协议,其设计和实现涉及多个RFC文档。以下是一些与TCP协议密切相关的RFC文档列表,按照时间顺序排列,涵盖了从基础定义到高级特性和优化的各个方面: 基…

python进程池、线程池

Python广为使用的并发处理库futures使用入门与内部原理_concurrent.futures-CSDN博客 ThreadPoolExecutor(max_workers1) 池中至多创建max_workers个线程的池来同时异步执行,返回Executor实例、支持上下文,进入时返回自己,退出时调用 submit(…

人工智能之深度学习_[5]-神经网络优化学习率衰减优化正则化方法

文章目录 神经网络入门二3 神经网络优化方法3.1 梯度下降算法回顾3.2 反向传播(BP算法)3.2.1 反向传播概念3.2.2 反向传播详解 3.3 梯度下降优化方法3.3.1 指数加权平均3.3.2 动量算法Momentum3.3.3 AdaGrad3.3.4 RMSProp3.3.5 Adam3.3.6 小结 4 学习率衰…

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置 1.Prometheus部署1.2.Prometheus修改默认端口 2.grafana可视化页面部署3.alertmanager部署4.监控配置4.1.主机监控node-exporter4.2.监控mysql数据库mysqld_exporter4.3.监控mongod数据库mongodb_expo…

计算机网络介质访问控制全攻略:从信道划分到协议详解!!!

一、信道划分介质访问控制 介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突? 时分复用(TDM) 时分复用:将时间分为等长的“…

2.5G PoE交换机 TL-SE2109P 简单开箱评测,8个2.5G电口+1个10G光口(SFP+)

TPLINK(普联)的万兆上联的2.5G网管交换机TL-SE2109P简单开箱测评。8个PoE 2.5G电口,1个万兆SFP上联口。 2.5G交换机 TL-SE2420 简单开箱评测,16个2.5G电口4个10G光口(SFP):https://blog.zeruns.com/archives/837.html…

王道数据结构day1

2.1线性表的定义和基本操作 1.线性表的定义 相同数据类型的数据元素的有限序列 位序(从1开始) 表头元素,表尾元素 直接钱去,直接后继 2.线性表的基本操作 基本操作:创销,增删改查 优化插入: 查找

PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10

1.环境搭建 硬件环境:CANoe、待测设备(包含UDS诊断模块) 2.pythonPyCharm环境 pip install robotframework pip install robotframework-ride pip install openpyxl pip install udsoncan pip install python-can pip install can-isotp3…

KUKA示教器仿真软件OfficeLite8.6.2,EthernetKRL3.1.3通信

一、准备软件。 1、vmware17.6.1 2、OfficeLite8.6.2 3、EthernetKRL3.1.3 4、KUKA Router 5、EthernetKRL_Server 通过网盘分享的文件:库卡相关软件 链接: https://pan.baidu.com/s/1NwvR3RVP0edLBeZnnnCYvw 提取码: smys 二、安装vmware17.6.1 1、找到下载…

保险行业专题|基于超融合实现 IT 基础设施现代化与国产化转型实践

更新内容 更新 SmartX 超融合在保险行业的覆盖范围、部署规模与应用情况。新增异地灾备,以及大数据平台、AI、云原生等数智化转型场景实践。更多超融合金融核心生产业务场景实践,欢迎阅读 3 册电子书(2024.11 更新版)。 【核心业…

玉米植物结构受乙烯生物合成基因 ZmACS7 的调控

摘要: 植物高度和叶片角度是玉米(Zea mays)植物结构的两个关键决定因素,与高种植密度下的抗倒伏性和冠层光合作用密切相关。这两个性状主要由几种植物激素调节。然而,乙烯在调节玉米植物结构中的机制,特别…

浅谈云端编辑器,分析其亮点与不足

浅谈云端编辑器,分析其亮点与不足 这个云端编辑器界面可以分为左侧题目筛选栏、中间题目描述与代码编辑区域、右侧AI提示功能三部分。以下是详细的分析: 1. 左侧题目筛选栏 层次结构清晰:左侧栏展示了一个层级结构,题目按主题分…

Zinc Finger锌指结构:

1,是一种蛋白质中的规律性结构,motif 是DNA结合motif(和DNA结合的部分里的规律性结构) 形状类似手指 2,不仅能结合DNA、RNA,还能结合蛋白质、脂质等 3,经典结构例如C2H2:也称为Cys…

安装wxFormBuilder

1. 网址:GitHub - wxFormBuilder/wxFormBuilder: A wxWidgets GUI Builder 2. 安装MSYS2 MSYS2可以在GitHub的内容中找到,这个版本是32位64位的 3. 在程序中打开MINGW64 shell 4. 在MSYS2 MINGW64 shell中输入 pacman -Syu pacman -S ${MINGW_PACKAGE…

leetcode 1620. 网络信号最好的坐标

题目如下 数据范围 示例 观察数据范围我们可以看到信号塔最多只有50座而x 与 y范围则是在0到50之间。 如果我们暴力枚举的话计算次数最多51 * 51 * 50时间复杂度即为O(n * n * M) 显然题目暗示我们使用枚举法通过代码 class Solution { public:vect…

Ansible fetch模块详解:轻松从远程主机抓取文件

在自动化运维的过程中,我们经常需要从远程主机下载文件到本地,以便进行分析或备份。Ansible的fetch模块正是为了满足这一需求而设计的,它可以帮助我们轻松地从远程主机获取文件,并将其保存到本地指定的位置。在这篇文章中&#xf…

数据恢复常用方法(三)如何辨别固态硬盘故障类型

数据恢复首先需要辨别固态硬盘故障类型,只有先确认故障类型,才能进行下一步动作 如下是一种常见的场景,固态硬盘无法识别,接入电源与数据线,电脑的磁盘管理不显示任何信息。 第一步:确认硬件状态&#xff…

七.网络模型

最小(支撑)树问题 最小部分树求解: 破圈法:任取一圈,去掉圈中最长边,直到无圈; 加边法:取图G的n个孤立点{v1,v2,…, vn }作为一个支撑图,从最短…

Django学习笔记(项目默认文件)-02

Django学习笔记(项目默认文件)-02 一、项目默认文件介绍 1、项目的文件结构 django_demo-manage.py (项目的管理、启动、创建app、数据管理)-django_demo-__init__.py-asgi.py (接受网络请求)-settings.py (项目配置文件)-urls…