news 2026/8/19 13:33:09

[STM32C0] 【STM32C092RC 测评】GPIO操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32C0] 【STM32C092RC 测评】GPIO操作

STM32C092RC 的 GPIO 配置虽然比 51 单片机复杂点,但官方库函数HAL/LL 库已经封装好了,照着例程改引脚号和参数就能用。

开时钟(让 GPIO 模块通电)

设置模式(输入/输出/上拉/下拉)

读写引脚(直接赋值 1 或 0)

虽然寄存器操作对新手不友好,建议直接用库函数,别硬啃手册,其实说白了就是那几个步骤。

STM32C092RC 有 32 个 GPIO 引脚具体型号可能不同,大部分支持复用功能UART、I2C、PWM 等一些外设。

GPIO 速度和驱动能力支持 2MHz/10MHz/50MHz 三种输出速度,实际是驱动能力调节,不是通信速率。

这里就不多讲了,现在开始对C092进行认真的了解与熟悉。

GPIO主要特性

输出状态:推挽或开漏+上拉/下拉

从输出数据寄存器(GPIOXODR)或外设(复用功能输出)输出数据

可为每个//0选择不同的速度输入

状态:浮空、上拉/下拉、I/0模拟模式

将数据输入到输入数据寄存器(GPIOxIDR)或外设(复用功能输入)

置位和复位寄存器(GPIOxBSRR),对GPIOxODR具有按位写权限

锁定机制(GPIOx LCKR),可冻结//0 端口配置模拟功能复用功能选择寄存器(一个 10 最多可具有 16 个复用功能)快速翻转,每次翻转最快只需要两个时钟周期引脚复用非常灵活,允许将/0 引脚用作 GPI0 或多种外设功能中的一种GPI0 功能描述根据数据手册中列出的每个 !/0端口的特性,可通过软件将通用 I/O(GPIO) 端口的各个端口位分别配置为多种模式:输入浮空输入上拉输入下拉模拟具有上拉或下拉功能的开漏输出具有上拉或下拉功能的推挽输出具有上拉或下拉功能的复用功能推换具有上拉或下拉功能的复用功能开漏

框图

下面看一下框图:

输出配置:

功能配置:

通用 I/0 (GPIO)

在复位期间及复位刚刚完成后,复用功能尚未激活,大多数 I0 端口被配置为模拟模式。复位后,调试引脚处于复用功能上拉/下拉状态:

PA14:SWCLK 处于下拉状态

PA13:SWDIO 处于上拉状态

PA14 与BOOT0 功能共用。使用时需小心谨慎,因为调试器件可能会篡改BOOTO 引脚值。当引脚配置为输出后,写入到输出数据寄存器(GPIOx ODR) 的值将在 I/0 引脚上输出。可以在推挽模式下或开漏模式(仅驱动低电平,高电平为高阻态)下使用输出驱动器。输入数据寄存器(GPIOx IDR) 每隔1个 AHB 时钟周期捕获一次 I/O 引脚的数据。所有 GPIO 引脚都具有内部弱上拉及下拉电阻,可根据 GPIOx PUPDR 寄存器中的值来打开/关闭。

GPIO 引脚支持以下工作模式:

GPIO:输出、输入或模拟 I/0,具体取决于 GPIOx MODER 寄存器设置复用功能

具有调试复用功能的 GPIO 在复位后设为复用功能模式。

附加功能

仅限部分 GPIO 引脚,附加功能模式通过相应功能模块(例如 ADC、DAC、RTC、RCC 和 PWR)的控制寄存器来设置,与 GPIOx MODER 寄存器设置无关。当某个 I/0 设为附加功能模式时,建议在 GPIOx MODER 寄存器中将其相应的 GPIO复用器设为模拟模式。

寄存器

GPIO 端口模式寄存器(GPIOX MODER)(x=A、B、C、D 和 F)

GPlO port mode register

偏移地址:0x00

复位值:0xEBFF FFFF(端口A)

复位值:0XFFFF FFFF(端口A以外的端口)

位 31:0 MODEy[1:0]: |/0y的端口x配置(Port x configuration for l/0 y)(y= 15 到 0)这些位通过软件写入,用于将 1/0 设为四种工作模式之一。00:输入

01:输出

10:复用功能

11:模拟

GPI0 端口输出类型寄存器(GPIOXOTYPER)(x=A、B、C、D和F)

GPlO port output type register

偏移地址:0x04

复位值:0x0000 0000

GPI0 端口输出速度寄存器(GPIOXOSPEEDR)(x=A、B、C、D和F)

GPlO port output speed register

偏移地址:0x08

复位值:0xOC00 0000(端口A)

复位值:0x0000 0000(端口A以外的端口)

这里就把几个基本的例出来。

代码

复制

  1. LED1_GPIO_CLK_ENABLE();
  2. LED2_GPIO_CLK_ENABLE();
  3. /* -2- Configure IO in output push-pull mode to drive external LEDs */
  4. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  5. GPIO_InitStruct.Pull = GPIO_NOPULL;
  6. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  7. GPIO_InitStruct.Pin = LED1_PIN;
  8. HAL_GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStruct);
  9. GPIO_InitStruct.Pin = LED2_PIN;
  10. HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);
  11. /* USER CODE END 2 */
  12. /* Infinite loop */
  13. /* USER CODE BEGIN WHILE */
  14. while (1)
  15. {
  16. /* USER CODE END WHILE */
  17. /* USER CODE BEGIN 3 */
  18. HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);
  19. /* Insert delay 100 ms */
  20. HAL_Delay(100);
  21. HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
  22. /* Insert delay 100 ms */
  23. HAL_Delay(100);

效果



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 3:17:34

实验四 ysy

/* project1_add.增加数据 */ #include <stdio.h> #include <stdlib.h>typedef struct {int id; // 产地IDchar name[50]; // 产地名称int yield; // 产量&#xff08;吨&#xff09; } OrangeFarm;int main() {OrangeFarm new_farm; // 本次只需定义一个结…

作者头像 李华
网站建设 2026/8/9 4:14:24

拥抱大数据领域数据服务,迎接数字时代挑战

拥抱大数据领域数据服务&#xff0c;迎接数字时代挑战 引言&#xff1a;数字时代的“数据焦虑” 凌晨两点&#xff0c;某零售企业的IT主管王磊盯着电脑屏幕上的报警信息发愁——营销部门刚发来紧急需求&#xff1a;“明天要推出‘618预热活动’&#xff0c;需要近30天所有门店的…

作者头像 李华
网站建设 2026/8/9 15:14:12

2025 零代码 AI 落地神器曝光

一、场景痛点与核心目标 场景痛点 企业落地 AI 应用时&#xff0c;常面临技术整合复杂、落地周期长、成本不可控、商用配套缺失等实际问题&#xff1a;多工具拼接易出现兼容性隐患&#xff0c;非技术团队难以独立完成配置&#xff1b;自研商用模块&#xff08;用户管理、支付…

作者头像 李华
网站建设 2026/8/19 13:30:36

雷达液位计工作原理是什么?(脉冲雷达 vs FMCW 雷达)

​ ​微波如何成为工业的“智慧之眼”&#xff1f;​ ​在现代工业的复杂环境中&#xff0c;精准测量液位是安全与效率的基石。雷达液位计&#xff0c;这项看似神秘的微波探测技术&#xff0c;正以其非接触、高精度的特性&#xff0c;默默守护着无数储罐与反应釜。它究竟…

作者头像 李华
网站建设 2026/7/29 10:02:44

【必读收藏】从写代码到“调教“AI:我的转型之路与开发方式革命

从Java程序员转型为AI应用开发工程师的经历。工作内容从编写CRUD接口变为研究大模型能力边界和设计AI业务流程。开发方式从直接写代码转变为与AI工具协作。思维方式从"工具人"升级为"编排师"&#xff0c;利用自身系统架构和业务经验优势&#xff0c;实现人…

作者头像 李华
网站建设 2026/7/31 3:17:46

牛批了,磁盘清理神器

今天给大家带来一款好用的硬盘清理软件&#xff0c;可以更好的管理电脑的硬盘存储空间&#xff0c;有需要的小伙伴一定要及时下载收藏。 HDCleaner 硬盘清洁器 这款软件功能非常多&#xff1a;包括电脑垃圾清理、注册表清理、永久删除文件、磁盘分析和整理等功能。 在清理栏目…

作者头像 李华