佛山专业做网站的360搜索引擎入口

pingmian/2026/1/25 9:08:05/文章来源:
佛山专业做网站的,360搜索引擎入口,WordPress下方菜单,wordpress备份文件后缀STM32-GPIO 介绍 什么是GPIO#xff1f; GPIO#xff08;通用输入/输出#xff09;是一种用于与外部设备进行数字通信的通用硬件接口。它允许微控制器或其他数字电路的引脚以灵活的方式配置为输入或输出#xff0c;并在运行时进行动态控制。GPIO可用于连接和控制各种外围…STM32-GPIO 介绍 什么是GPIO GPIO通用输入/输出是一种用于与外部设备进行数字通信的通用硬件接口。它允许微控制器或其他数字电路的引脚以灵活的方式配置为输入或输出并在运行时进行动态控制。GPIO可用于连接和控制各种外围设备如LED、按钮、传感器、显示器、通信设备等。 GPIO模式 GPIO引脚的工作可以配置为输入还是输出以及其他相关的特性。STM32微控制器提供了多个寄存器来配置每个GPIO引脚的工作模式包括MODER模式寄存器、OTYPER输出类型寄存器、OSPEEDR输出速度寄存器、PUPDR上拉/下拉寄存器等。 以STM32F407为例它的5 V 容忍 I/O 端口位的基本结构如下 以下是STM32的GPIO引脚的几种基本模式 输入模式 (Input Mode): Analog Mode模拟模式: 用于连接模拟传感器。Floating Input浮空输入: 没有内部上拉或下拉电阻需要外部电路提供电平。Pull-up / Pull-down上拉/下拉输入: 配置内部上拉或下拉电阻用于消除浮空输入的不确定性。 输出模式 (Output Mode): Push-Pull Output推挽输出: 可以提供高电平和低电平输出。Open-Drain Output开漏输出: 用于连接多个设备需要外部上拉电阻来提供高电平。Push-Pull with Pull-up/Pull-down推挽输出带上拉/下拉: 输出高电平或低电平时同时配置上拉或下拉电阻。 常用API 在使用STM32的HAL库进行GPIO输入输出配置时主要使用的API包括HAL_GPIO_Init、HAL_GPIO_DeInit、HAL_GPIO_WritePin、HAL_GPIO_ReadPin等。 HAL_GPIO_Init函数 HAL_StatusTypeDef HAL_GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_Init);用于初始化指定的GPIO引脚。其中GPIOx是指定的GPIO端口如GPIOA、GPIOB等GPIO_Init是一个结构体包含了GPIO引脚的配置信息如模式、速度、上拉下拉等。 例如将PA5配置为推挽输出 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.Pin GPIO_PIN_5; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; // 推挽输出 GPIO_InitStruct.Speed GPIO_SPEED_FREQ_MEDIUM; HAL_GPIO_Init(GPIOA, GPIO_InitStruct);HAL_GPIO_DeInit函数 void HAL_GPIO_DeInit(GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin);用于反初始化指定的GPIO引脚。其中GPIOx是指定的GPIO端口GPIO_Pin是指定的GPIO引脚。 例如反初始化PA5引脚 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);HAL_GPIO_WritePin函数 void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);用于设置指定的GPIO引脚的输出状态。其中GPIOx是指定的GPIO端口GPIO_Pin是指定的GPIO引脚PinState是要设置的状态GPIO_PIN_SET表示高电平GPIO_PIN_RESET表示低电平。 例如将PA5设置为高电平 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);HAL_GPIO_ReadPin函数 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);用于读取指定GPIO引脚的输入状态。其中GPIOx是指定的GPIO端口GPIO_Pin是指定的GPIO引脚。 例如读取PA5引脚的状态 GPIO_PinState state HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_5);项目实训 点亮一颗led STM32F407芯片连接了一个LED到PA5引脚 #include stm32f4xx_hal.hvoid SystemClock_Config(void); static void GPIO_Init(void);int main(void) {// 初始化HAL库HAL_Init();// 配置系统时钟SystemClock_Config();// 初始化GPIOGPIO_Init();while (1) {// 点亮LEDHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);// 延时HAL_Delay(1000);// 关闭LEDHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);// 延时HAL_Delay(1000);} }// 系统时钟配置函数使用HAL库的CubeMX生成的代码 void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState RCC_HSI_OFF;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLM 8;RCC_OscInitStruct.PLL.PLLN 336;RCC_OscInitStruct.PLL.PLLP RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ 4;if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK) {Error_Handler();}RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV4;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV2;if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_5) ! HAL_OK) {Error_Handler();} }// GPIO初始化函数 static void GPIO_Init(void) {// 启用GPIOA时钟__HAL_RCC_GPIOA_CLK_ENABLE();// 初始化PA5引脚为推挽输出GPIO_InitTypeDef GPIO_InitStruct {0};GPIO_InitStruct.Pin GPIO_PIN_5;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_MEDIUM;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);// 初始化引脚状态为低电平HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); } 按键控制LED亮灭 假设按键连接到PA0引脚LED连接到PA5引脚 #include stm32f4xx_hal.hvoid SystemClock_Config(void); static void GPIO_Init(void);int main(void) {// 初始化HAL库HAL_Init();// 配置系统时钟SystemClock_Config();// 初始化GPIOGPIO_Init();while (1) {// 读取按键状态if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) GPIO_PIN_SET) {// 按键按下点亮LEDHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);} else {// 按键未按下关闭LEDHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);}} }// 系统时钟配置函数使用HAL库的CubeMX生成的代码 void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState RCC_HSI_OFF;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLM 8;RCC_OscInitStruct.PLL.PLLN 336;RCC_OscInitStruct.PLL.PLLP RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ 4;if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK) {Error_Handler();}RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV4;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV2;if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_5) ! HAL_OK) {Error_Handler();} }// GPIO初始化函数 static void GPIO_Init(void) {// 启用GPIOA时钟__HAL_RCC_GPIOA_CLK_ENABLE();// 初始化PA0引脚为上拉输入按键连接到地按下时引脚电平为低GPIO_InitTypeDef GPIO_InitStruct {0};GPIO_InitStruct.Pin GPIO_PIN_0;GPIO_InitStruct.Mode GPIO_MODE_INPUT;GPIO_InitStruct.Pull GPIO_PULLUP;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);// 初始化PA5引脚为推挽输出GPIO_InitStruct.Pin GPIO_PIN_5;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_MEDIUM;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);// 初始化引脚状态为低电平HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); }// 错误处理函数 void Error_Handler(void) {while (1) {// 程序错误时停在这里} }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站排名易下拉技巧电子商务营销渠道有哪些

2020FRM考试计算器:想一想FRM一级考试基本上按计算器停不下来,我们就一定要买一个简单易操作的计算器,但是GARP对于FRM考生所使用的计算器是有规定的:所有参加FRM考试的考生必须使用GARP指定的计算器,如果考生在考试期…

深圳西乡网站建设公司渝发建设官方网站

Matlab是一种功能强大的数值计算和数据分析软件,它在解决各种数学问题中都具有很高的效率和灵活性。其中,Matlab也可以用于求解标准规划问题,即线性规划问题。 标准规划问题是一种常见的优化问题,其目标是在给定的约束条件下&…

免费写作网站江苏建设网站酒店装修合同范本

http://blog.sina.com.cn/s/blog_6c9d65a1010180mg.html转载于:https://www.cnblogs.com/wangkongming/p/3516449.html

网站建设管理软件网站后台怎么做

1. JWT(JSON Web Token) 1.1 什么是JWT? JWT,全称为JSON Web Token,是一种用于在网络上安全传输信息的开放标准。它的设计初衷是用于跨域通信,在不同域之间传递声明性信息。JWT是一种自包含的令牌&#x…

网站建设书 模板下载深圳网页制作

遇到问题:用npm下载组件时出现Cannot find module ‘D:software\node_modules\npm\bin\npm-cli.js’ 问题,导致下载组件不能完成。 解决方法:下载缺少的npm文件即可解决放到指定node_modules目录下即可解决。 分析问题&#xff1…

泰州北京网站建设兰州免费网站建设

在网络安全领域,ATT&CK已经成为了研究和理解恶意攻击者行为的重要工具。站在攻击者的视角,ATT&CK为我们描绘了他们在攻击过程中所使用的各种战术、技术和常见知识。本文将结合ATT&CK框架,对水坑钓鱼攻击进行深入分析,…

app定制开发 价格哈尔滨网站优化

重定向AutoResponder的用法 关于Fiddler的AutoResponder重定向功能,主要是时进行会话的拦截,然后替换原始资源的功能。 它与手动修该reponse是一样的,只是更加方便了,可以创建相应的rules,适合批处理的重定向功能。 …

行业门户网站大全wordpress ftp上传

如何避免Java死锁? 是Java面试中最受欢迎的问题之一,也是本季多线程的风格,主要是在高层提出,并带有很多后续问题。 尽管问题看起来很基础,但是一旦您开始深入研究,大多数Java开发人员就会陷入困境。 面试…

做美食推广的网站wordpress添加主题提示缺少文件

电感器 文章目录 电感器1、概述2、电感器的时间常数3、电感器示例1 电感器是一种由线圈组成的无源电气元件,其设计目的是利用电流通过线圈而产生的磁力和电力之间的关系。 1、概述 在本中,我们将看到电感器是一种电子元件,用于将电感引入到电…

电子商务网站建设的案例分析题wordpress 皮肤

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2. 运行流程实例2.1 查询流程定义2.2 启动流程2.3 任务查询2.4 审批3. 数据表1. 前言…

房山建设网站企业网站建设及维护费用

原文链接地址:http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F…… 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm啦,、ASP.NET之类的程序&…

北京网站平台开发适合个人做的跨境电商

1. 通信技术和标准化领域中扮演重要角色的组织 1.1 国际和国家官方标准化机构 OSI:国际标准化组织(ISO),负责国际标准的制定,旨在确保全球产品和服务的安全性、可靠性和效率。它有许多国家分支机构,包括法…

响应式设计网站怎么做聊城哪有做网站的

Linux目录详解: 目录名说明/bin重要的二进制 (binary) 应用程序:包含二进制文件,系统的所有用户使用的命令都在这个目录下/boot启动 (boot) 配置文件:包含引导加载程序相关的文件,开机时用到的引导文件/data数据存储区…

找合伙人的网站做淘宝代理服务器地址是什么意思

一、应用背景 目前,针对审计行业,关于大数据技术的相关研究与应用一般包括大数据智能采集数据技术、大数据智能分析技术、大数据可视化分析技术以及大数据多数据源综合分析技术。其中,大数据智能采集数据技术是通过网络爬虫或者WebService接…

php网站有点seo整站优化哪家专业

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

住房城乡建设部网站通报徐州网络推广服务

在之前的文章里,介绍了比较传统的K-Means聚类、Affinity Propagation(AP)聚类、比K-Means更快的Mini Batch K-Means聚类以及混合高斯模型Gaussian Mixture Model(GMM)等聚类算法,今天介绍一个比较近代的一类算法——Spectral Clustering 中文通常称为“谱…

asp网站怎么改成中英双语彩票网站做维护是什么

http://www.microsoft.com/downloads/details.aspx?displaylangzh-cn&FamilyIDd95598d7-aa6e-4f24-82e3-81570c5384cb#filelist 这是什么?*** 转载于:https://www.cnblogs.com/zxsoft/archive/2008/02/17/1071038.html

河南外贸网站制作迅当网络深圳外贸网站建设

具体程序代码如下,主要问题就是不管我怎么调整参数,最终的预测结果都没有太大的变化,还请了解这两大算法的帮忙看看问题出在哪里了,十分感谢!tic;close all;clear;clc;format compact;load M2.mat %载入数据% 提取数…

什么网站可以做软件网站开头flash怎么做

字符串类型特点 Redis的字符串类型是一种简单而灵活的数据结构,其特点如下: 任意数据类型: 字符串类型可以存储任意数据,包括文本、二进制数据等。直接访问和修改: 可以直接通过键名访问和修改整个字符串,而不需要像其他数据结构…

红安建设局官方网站wordpress 网页模块错位

数据结构-堆的实现及应用[堆排序和TOP-K问题] 一.堆的基本知识点1.知识点 二.堆的实现1.堆的结构2.向上调整算法与堆的插入2.向下调整算法与堆的删除 三.整体代码四.利用回调函数避免对向上和向下调整算法的修改1.向上调整算法的修改2.向下调整算法的修改3.插入元素和删除元素函…