新闻详情

新闻详情

首页 / 资讯中心 / 详情

STM32F103寄存器方式流水灯

发布时间:2026/11/7 0:32:15来源:尧图网络
STM32F103寄存器方式流水灯
STM32F103寄存器方式流水灯实验报告实验名称STM32F103寄存器直接操作实现流水灯一、实验目的1.熟悉STM32F103C8T6最小系统板硬件了解GPIO端口功能。2.掌握寄存器直接操作方式理解外设时钟、GPIO配置寄存器作用。3.分别控制GPIOA‑PA0、GPIOB‑PB0、GPIOB‑PB1外接LED实现三个外接LED间隔1秒轮流点亮。4.调用板载PC13LED修改程序完成四路流水灯效果。5.熟练Keil‑MDK工程创建、代码编译、程序下载操作。6.学习Git工具将项目上传至Gitee仓库撰写实验博客。二、实验器材1.STM32F103C8T6最小系统板2.ST‑Link仿真下载器3.面包板红、黄、蓝3只LED220Ω限流电阻若干杜邦线4.笔记本电脑Keil uVision5开发软件三、实验原理STM32的GPIO外设工作前必须开启对应端口时钟由RCC_APB2ENR寄存器控制。本次实验外接三个LED分别接到PA0、PB0、PB1引脚板载LED为PC13。- GPIOx‑CRL控制引脚0‑7的工作模式PA0、PB0、PB1都由CRL寄存器配置设置为通用推挽输出。- GPIOx‑CRH控制引脚8‑15PC13属于CRH寄存器管理。- BSRR置位寄存器写1引脚输出高电平。- BRR复位寄存器写1引脚输出低电平。硬件电路PA0、PB0、PB1引脚串联220Ω限流电阻后接LED阳极LED阴极接GND。引脚输出高电平时外接LED点亮。板载PC13LED电路相反低电平点亮高电平熄灭编程的时候需要注意电平逻辑。延时采用软件空循环实现粗略达到1秒延时缺点延时精度不高。寄存器关键地址表格寄存器 基地址 偏移RCC 0x40021000 0x18(RCC_APB2ENR)GPIOA 0x40010800 0x00(CRL)GPIOB 0x40010C00 0x00(CRL)GPIOC 0x40011000 0x04(CRH)四、程序设计思路1.宏定义各个寄存器地址将地址强制转换为volatile无符号整数指针直接读写寄存器。2.初始化函数中打开GPIOA、GPIOB、GPIOC时钟。3.配置PA0、PB0、PB1推挽输出配置PC13推挽输出。4.初始化所有LED处于熄灭状态。5.编写软件延时函数双层循环空操作实现延时。6.main主循环依次点亮PA0→PB0→PB1→PC13每次延时1s然后熄灭切换下一盏灯无限循环。五、实验代码带注释引脚PA0 PB0 PB1#include stm32f10x.h// ????,??t1000 ????1?void Delay(uint32_t t){uint32_t i,j;for(i0;it;i)for(j0;j7200;j);}int main(void){// ??GPIOA?GPIOB??RCC-APB2ENR | (1U 2) | (1U 3);// PA0 ???? 50MHzGPIOA-CRL ~(0x0FU 0);GPIOA-CRL | (0x03U 0);// PB0 ???? 50MHzGPIOB-CRL ~(0x0FU 0);GPIOB-CRL | (0x03U 0);// PB1 ???? 50MHzGPIOB-CRL ~(0x0FU 4);GPIOB-CRL | (0x03U 4);// ??????GPIOA-ODR ~(1U 0);GPIOB-ODR ~((1U 0)|(1U 1));while(1){//PA0?GPIOA-ODR | (1U 0);GPIOB-ODR ~((1U 0)|(1U 1));Delay(1000); // ??1?//PB0?GPIOA-ODR ~(1U 0);GPIOB-ODR | (1U 0);GPIOB-ODR ~(1U 1);Delay(1000); // ??1?//PB1?GPIOA-ODR ~(1U 0);GPIOB-ODR ~(1U 0);GPIOB-ODR | (1U 1);Delay(1000); // ??1?}}六、实验步骤1.硬件接线PA0 →220Ω电阻→LED正极LED负极接GNDPB0 →220Ω电阻→LED正极LED负极接GNDPB1 →220Ω电阻→LED正极LED负极接GNDST‑Link连接开发板SWDIO、SWCLK、GND、3.3V。实物接线效果如图插入你三张实拍图片。2.打开Keil‑MDK新建工程选择STM32F103C8芯片。3.新建main.c文件粘贴上面寄存器代码。4.配置调试器为ST‑Link勾选下载后复位运行。5.编译工程无报错后下载程序到最小系统板。6.上电观察现象外接PA0、PB0、PB1三个LED和板子上面PC13自带LED按照顺序轮流点亮每一盏灯点亮大约保持1秒不断循环流水。7.记录现象截图Keil编译界面、硬件点灯实物图。七、实验现象程序下载完成之后外接在PA0、PB0、PB1的三个LED与板载PC13LED依次点亮流水顺序PA0 → PB0 → PB1 → PC13每个灯点亮约1秒循环往复。因为采用软件延时间隔时间不是特别精准。八、遇到的问题与解决学生真实感1.一开始代码编译报错 uint32_t 未定义。后面改用unsigned int宏定义寄存器解决报错。2.刚写完程序灯没有任何反应排查很久才想起来STM32GPIO使用前必须开启时钟补上时钟开启语句之后引脚才有输出。3.这次用到PB0与PB1两个引脚同在GPIOB端口CRL寄存器一开始移位位置写错PB1控制失效对照寄存器手册PB1对应第4‑7位修改移位数值后正常。4.板载PC13LED电平逻辑相反一开始直接套用外接LED高电平点亮的写法结果PC13状态反了修改BSRR、BRR控制语句之后正常。5.软件延时误差比较大实物上面1秒间隔看着有点快之后想要精准定时需要学习定时器。九、实验总结本次实验没有调用库函数直接操作寄存器地址控制GPIO。外接LED引脚选用PA0、PB0、PB1加上板载PC13实现四路流水灯。通过本次实验我弄明白了寄存器每一位配置的含义同一端口多个引脚配置时不能互相干扰修改CRL寄存器前先对应位清零再赋值。同时记住了PC13属于CRH寄存器不能操作CRL。软件延时只能粗略定时缺点很多。之后想要做好STM32开发还要深入学习定时器、中断。本次作业同时需要把工程上传Gitee练习Git基础命令发布实验博客完成全部提交任务。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/6 6:37:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/7 0:39:20

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/7 6:36:21

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/6 17:25:36

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/6 14:29:05

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/6 14:29:07

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉