当前位置: 首页 > article >正文

如何学会自己写代码控制STM32(裸机)-GPIO篇

//总结自己的工作经验帮助学习单片机的入门者快速上手写代码该文章是基于STM32F401裸机代码编写思路后续会更新增加STM32FreeRTOS首先想要写单片机的程序你必须有扎实的C语言基础从我多次面试的经验总结嵌入式软件岗位的面试会对你C语言水平进行严厉考核。现在的单片机程序很多都是HAL库和标准库函数初学者很难理解。想自己写单片机程序一定离不开单片机的参考手册(可以从官网获取)这里很多人会拿着从立创商城下载的数据手册然后发现和我说的不一样因为数据手册只是告诉你这个单片机有什么功能有多少引脚。。不会教你怎么写程序。我个人觉得当你学会使用寄存器写单片机程序时就代表你可以开始自己写代码了如果你只会调用HAL库或者标准库函数那你就是会维护程序。单片机入门学习不要好高骛远只有一步一个脚印才会让你走得更远这里的一步一个脚印就是你写一个代码实现一个功能当你成功的点亮一个灯、你就学会了拉高拉低GPIO的引脚电平当你学会驱动舵机你就学会了使用PWM调节占空比而PWM可以通过翻转引脚电平进行调节占空比也可以配置GPIO引脚复用为定时器引脚输出PWM波形通过修改定时器的ARR来调节PWM01时钟时钟很重要首先你需要确定你用的单片机的系统时钟频率是72M还是84M时钟源是外部晶振HSI还是内部RC振荡器HSE这里的代码一般在配置文件里一般不需要自己写但你需要看懂不然后面的定时器、串口出问题很有可能就是时钟配置的不对。02GPIOGPIO常用的寄存器每个 GPIO 端口如 GPIOA、GPIOB有 7 个核心寄存器32位低16位对应 Pin0~Pin15。寄存器全称作用位宽MODERMode Register模式输入/输出/复用/模拟2位/PinOTYPEROutput Type Register输出类型推挽/开漏1位/PinOSPEEDROutput Speed Register输出速度低/中/高/很高2位/PinPUPDRPull-up/Pull-down Register上拉/下拉/无2位/PinIDRInput Data Register读取引脚电平1位/PinODROutput Data Register输出高低电平1位/PinBSRRBit Set/Reset Register原子操作置1/清0低16位置1高16位清0关键技巧用BSRR代替ODR操作避免“读-改-写”导致的竞争问题。GPIO引脚寄存器配置程序配置PA5为推挽输出GPIO复用引脚寄存器配置程序配置PA9、PA10复用为USART1_TX和RX03TIMER04USART05SPI06IIC07EXIT08NVIC09DMA直接给你一份参考手册你看一年都写不出程序你需要拿到一份程序对照参考手册然后抄一遍自己尝试写一遍用流程图画出程序功能再根据功能一步一步的写程序当然这只是入门而已。入门以后要学会用假定时器、环形缓存区、无敌结构体标志位、任务调度(时间片调度)等需要理解驱动层、应用层、协议层一定要学会自己看参考手册自己配置寄存器实现自己需要的功能思考如何实习需要哪些外设功能、哪些寄存器写程序不是写文章硬靠自己编一定要学会参考学会查资料写程序从来不是从0到1而是从0.75到1你想要完全掌握单片机的寄存器你可以按照官方给的标准库函数按照他的库函数封装用寄存器翻译过来然后多练、多看、多思考如果该文章反馈较好会继续更新。。。。

相关文章:

如何学会自己写代码控制STM32(裸机)-GPIO篇

//总结自己的工作经验,帮助学习单片机的入门者,快速上手写代码该文章是基于STM32F401裸机代码编写思路,后续会更新增加STM32FreeRTOS首先想要写单片机的程序,你必须有扎实的C语言基础,从我多次面试的经验总结&#xff…...

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 引言:验证码识别在企业自动化系统中的战略价值 在当今数字化时…...

机器人仿真创新方案:基于ROS的工业级虚拟测试平台

机器人仿真创新方案:基于ROS的工业级虚拟测试平台 【免费下载链接】wpr_simulation 项目地址: https://gitcode.com/gh_mirrors/wp/wpr_simulation 在机器人技术快速发展的今天,硬件成本高昂、测试周期漫长、算法验证困难已成为制约机器人产业发…...

IOT-Tree支持[子站-中心]数据同步功能-轻松支持你的物联网平台

在版本1.9.0开始,IOT-Tree内部移植并开源了中心-子站点的数据同步功能,这个功能已经在我们开发团队的企业用户系统中使用了很长一段时间,足够稳定和可靠。 当前很多物联网系统中,经常有如下需求: 1)一些工…...

长期使用Taotoken Token Plan套餐对项目研发成本的控制效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐对项目研发成本的控制效果 在项目研发中,大模型API调用成本是预算管理的重要一环。对…...

[SSD]SSD主控

SSD系统架构SSD系统由一块CPU主控,可以是ARM或者RISC-v;整个主控芯片分为三个部分,分别是主机接口控制器,缓存控制器和闪存控制器,它可以分为前端和后端,前端就是主机接口控制器和主机之间的通信&#xff0…...

数据库与仓储

数据库与仓储 位置:Source/DataBases 项目作用H.DataBases.Share数据库共享代码。H.DataBases.SqliteSqlite 支持。H.DataBases.SqlServerSQL Server 支持。 Repository 相关: H.Extensions.DataBase.Repository H.Presenters.Repository H.Controls.…...

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计 【免费下载链接】aizynthfinder A tool for retrosynthetic planning 项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder 你是否曾为设计一个复杂分子的合成路线而彻夜难眠?在传统…...

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF…...

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le/LEGI…...

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里?

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里? 最近,V2EX上一个帖子引发了激烈讨论:随着AI能力的指数级增长,一个人就能完成从前需要整个团队才能做到的全栈开发。如果产品经理借…...

3个关键步骤:在macOS上制作Windows启动盘的完整指南

3个关键步骤:在macOS上制作Windows启动盘的完整指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legacy Sup…...

通过Taotoken聚合调用,在不同时段测试模型响应速度的观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken聚合调用,在不同时段测试模型响应速度的观察 在构建依赖大模型能力的应用时,响应速度是一个直…...

Steam游戏时长与卡牌挂机:HourBoostr与SingleBoostr完整使用指南

Steam游戏时长与卡牌挂机:HourBoostr与SingleBoostr完整使用指南 【免费下载链接】HourBoostr Two programs for idling Steam game hours and trading cards 项目地址: https://gitcode.com/gh_mirrors/ho/HourBoostr Steam玩家都知道,解锁游戏交…...

别再瞎找了!2026年不容错过的专业AI论文软件

2026年AI论文写作工具已从“基础生成”升级为智能协同研究系统,核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言支持。本次测评覆盖6款主流工具,涵盖中文与英文场景、全流程与专项功能、免费与付费版本,让你…...

BilibiliDown音频提取终极指南:如何从B站视频中提取高质量音乐

BilibiliDown音频提取终极指南:如何从B站视频中提取高质量音乐 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_m…...

凡亿AD22--PCB设计课程项目总结及后续学习规划

一、本次PCB设计课程核心总结本次系列课程的核心定位是「PCB设计入门基础」,核心目标是帮助新手快速上手,搭建PCB设计的基础认知,整体围绕“工具操作基础知识点”两大核心展开,具体总结如下:1. 课程核心目标本次课程不…...

良心云用户如何快速接入Taotoken实现大模型API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 良心云用户如何快速接入Taotoken实现大模型API调用 对于在良心云服务器上部署应用的开发者而言,将大模型能力集成到自己…...

如何快速掌握智能电源管理:macOS用户的完整配置指南

如何快速掌握智能电源管理:macOS用户的完整配置指南 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX SleeperX是一款专为macOS用户设计的开源…...

8255与74LS273实现流水灯控制原理

箱图片和题目要求,这是一个经典的微机原理/接口技术实验。你需要构建一个包含输入(开关)、处理(8255读取)、输出(74LS273锁存驱动LED)的系统。由于我无法直接为你绘制CAD图纸,我为你…...

ElevenLabs芬兰语TTS深度评测:9大真实场景实测,准确率92.7% vs 传统引擎差距在哪?

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs芬兰语TTS技术概览与评测背景 ElevenLabs 作为当前语音合成领域的领先平台,其多语言支持能力持续扩展,芬兰语(Finnish)于2023年第四季度正式纳…...

Solidity 知识点速记整理 - (2026年) (75 - 94)

文章目录前言Solidity 知识点速记整理 - (2026年) (75 - 94)前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那…...

视启未来[特殊字符]百度智能云:给大模型一双手,让AI真正触碰物理世界

如果说过去两年,大模型在数字世界里掀起了一场海啸;那么2026年,这场海啸正在以“具身智能”的形态,猛烈地拍击物理世界的海岸线。但这里却有一个“骨感”的现实:AI能写出拿普利策奖的文章,能画出媲美梵高的…...

从一次任务到一次进化:完整拆解 Skill 创建、复用、修补链路

点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群写到这一篇,第二章的拼图终于齐了。 前面四篇我把 Hermes 的自学习系统拆成了 4 个零件:Memory(记知识)、Skill(记做法)、Nu…...

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirr…...

BilibiliDown终极指南:5分钟掌握B站视频下载与音频提取

BilibiliDown终极指南:5分钟掌握B站视频下载与音频提取 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...

iFakeLocation终极指南:3分钟实现iOS虚拟定位的完整教程

iFakeLocation终极指南:3分钟实现iOS虚拟定位的完整教程 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 想在iOS设备上轻松模拟任意位置吗&…...

3步拯救损坏视频!UNTRUNC开源工具让你的珍贵回忆重获新生

3步拯救损坏视频!UNTRUNC开源工具让你的珍贵回忆重获新生 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 你是否…...

【ChatGPT】基于李群、李代数与螺旋理论的 Tricept 并联加工机器人控制系统软硬件架构深度拆解、信息图10张、爆炸图10张、C++代码框架

希望还能够有机会去研究他们(前提是能够遇到好领导)深度拆解...

Windows 11系统优化终极指南:用Win11Debloat免费让你的电脑飞起来

Windows 11系统优化终极指南:用Win11Debloat免费让你的电脑飞起来 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...