STM32F103C8T6 IO 操作

embedded/2024/10/30 19:35:53/

1.开启相关时钟

        在 STM32 微控制器中,开启 GPIO 端口的时钟是确保 IO 口可以正常工作的第一步。

查找 RCC 寄存器使能时钟

        在 STM32 中,时钟控制的寄存器通常位于 RCC (Reset and Clock Control) 模块中。不同的 STM32 系列(如 STM32F1、STM32F4 等)具有不同的寄存器地址。

通过查看参考手册系统架构可以找到GPIO口是在APB2下的。

        查找要开启时钟的寄存器,然后通过该寄存器操作时钟的开启或关闭。比如要打开IOPA的时钟就要操作该寄存器的第二位IOPAEN为1,就需要知道RCC_APB2ENR这个寄存器的地址。

RCC的基地址加上这个寄存器的偏移地址就是这个寄存器的实际地址。

比如我要使能GPIOA的时钟

RCC的基地址是0x4002 1000,APB2ENR的偏移量是0x18,所以APB2ENR的地址值是0x4002 1000 + 0x18 = 0x4002 1018

在这个地址写入1,这样就开启了GPIOA的时钟。

在代码中,需要把地址强转成指针才能给这个地址赋值。

*(uint32_t *)(0x40021000 + 0x18) = 0x04;

这样就开启了GPIOA的时钟。

2.给IO口设置模式输出电平

找到GPIOx的基地址,再根据偏移地址找到要使用的寄存器的地址。

如GPIOA的基地址是0x4001 0800 + 0x00,PA0的输出模式寄存器是GPIOA_CRL。

配置MODE0 = 11 输出模式Max50MHz , CNF0 = 00 通用推挽输出模式 (0011)0x3

*(uint32_t *)(0x40010800 + 0x00) = 0x03;

ODR寄存器的地址是 0x40010800 + 0x0c ,设置PA0为高电平。

*(uint32_t *)(0x40010800 + 0x0c) = 0x01;

I/O端口寄存器须按32位访问


http://www.ppmy.cn/embedded/133682.html

相关文章

【Windows电脑通过cmd命令查看电脑电池健康度】

Cmd输入 powercfg /batteryreport打印电池使用报告,打开即可 此处查看FULL CHARGE CAPACITY(充满电容量)

研二了,该想想做啥呢?

写于22年10月24日,之前删了,今天回看,自己当时还挺有意思哈哈哈 一、自我介绍 行秋,男,24岁,电子信息专业,硕士在读。 二、新学期目标 1、好好学习 ① 学好一门语言,学好英语&am…

提升RAG系统的回答质量:PDF解析代码详解-PdfParser核心流程

在上一篇文章中,我们探讨了如何通过计算机视觉大模型提升RAG系统解析PDF文档的能力,并展示了该技术在行业文档识别中的实际应用效果。文章发布后,受到了广泛关注。读者主要关心两个问题:其一,如何在PDF文档识别过程中编…

推荐一款多显示器屏幕亮度调节工具:Twinkle Tray

Twinkle Tray中文版使您可以轻松管理多台显示器的亮度级别。 尽管 Windows 10 能够调节大多数显示器的背光,但它通常不支持外部显示器。 Windows 还缺乏管理多台显示器的亮度的任何功能。 该应用程序将一个新图标插入系统托盘,您可以在其中单击以立即访问…

Linux云计算 |【第五阶段】ARCHITECTURE-DAY5

主要内容: 搭建Zookeeper高可用集群、搭建分布式消息队列kafka、搭建高可用hadoop集群 一、Zookeeper 介绍 Zookeeper是一个开源分布式应用程序协调服务,主要用于解决分布式集群中应用系统的一致性问题。它能提供类似文件系统的目录节点树方式的数据存…

3d点在立方体内(numpy,不使用for循环)

说明 判断一堆3d点哪些在一堆3d框内,与主流3d目标检测算法一样,立方体只有水平方向上的旋转,没有高度方向上的旋转,就是拍到BEV图像上是一个旋转的矩形 代码优势 基于numpy完成,直接判断一堆点和一堆3d框的包含关系&…

Java爱情交友婚恋系统小程序源码

💑【恋爱攻略】交友婚恋系统,遇见对的TA不再难!💖💫 💌 开篇:数字时代,寻觅真爱的新方式 在这个快节奏的数字时代,寻找真爱似乎成了一件既期待又头疼的事情。&#x1f…

Spring Cloud Ribbon:负载均衡的服务调用

Spring Cloud Ribbon:负载均衡的服务调用 Spring Cloud Ribbon 是Spring Cloud Netflix 子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能,本文将对其用法进行详细介绍 Ribbon简介 Ribbon 是 Netflix 公司开源的一个用…