STM32 流水灯采用推挽方式

发布时间:2026/7/12 4:36:06
STM32 流水灯采用推挽方式 # STM32F10x PA0~PA7八路流水灯程序说明文档 ## 一、文档概述 本文档针对基于寄存器开发的STM32F10系列8路流水灯工程进行完整说明硬件使用PA0~PA7共8个GPIO引脚驱动LED程序采用标准库底层寄存器直接操作搭配SysTick精准延时实现单灯依次循环流水效果。 ## 二、硬件资源说明 1. **主控芯片**STM32F10x如F103C8T6 2. **外设引脚**GPIOA端口 PA0、PA1、PA2、PA3、PA4、PA5、PA6、PA7 3. **LED驱动逻辑**共阳极接法 - LED正极接3.3V电源负极串联限流电阻后接STM32 PA引脚 - 引脚输出**低电平** → LED点亮引脚输出**高电平** → LED熄灭 4. **系统时钟**内核主频72MHzSysTick定时器基于系统时钟做us/ms/s多级延时 ## 三、程序整体功能 上电初始化完成后8颗LED按照 PA0→PA1→PA2→PA3→PA4→PA5→PA6→PA7 顺序依次点亮每颗灯保持500ms后熄灭全部走完一轮后无限循环流水。 ## 四、代码模块分块解析 ### 1. 头文件与函数声明 c #include stm32f10x.h void Delay_us(uint16_t us); void Delay_ms(uint16_t ms); void Delay_s(uint16_t s); - stm32f10x.h芯片底层寄存器、位掩码宏定义头文件提供RCC、GPIO、SysTick寄存器地址与位定义 - 三个延时函数声明分别支持微秒、毫秒、秒级延时供主逻辑调用 ### 2. main主函数程序入口 #### 1GPIOA时钟使能 c RCC-APB2ENR | RCC_APB2ENR_IOPAEN; RCC为复位时钟控制外设APB2总线挂载GPIOA/GPIOB/GPIOC等端口该语句打开GPIOA外设时钟不开启时钟则GPIO无输出功能。 #### 2PA0~PA7模式配置CRL寄存器 c GPIOA-CRL 0x33333333; - GPIOA-CRL端口配置低寄存器每4位控制1个引脚PA0~PA7 - 4位配置格式CNF[1:0] MODE[1:0] - 数值0x3 00 11CNF00通用推挽输出MODE11最大速度50MHz - 一次性将PA0~PA7全部配置为50MHz推挽输出模式 #### 3初始电平配置全部LED熄灭 c GPIOA-ODR | (GPIO_ODR_ODR0 | GPIO_ODR_ODR1 ... | (1 7)); ODR为端口输出数据寄存器置1对应引脚输出高电平上电默认全部引脚拉高所有LED初始关闭。 #### 4主循环流水逻辑 c while(1) { // 单灯操作模板 GPIOA-ODR ~(1 n); // 对应引脚置0点亮LED Delay_ms(500); // 保持500ms GPIOA-ODR | (1 n); // 对应引脚置1熄灭LED } 依次遍历PA0~PA7逐个点亮延时、熄灭一轮结束自动重复循环。 ### 3. SysTick精准延时函数 #### 1微秒延时 Delay_us c void Delay_us(uint16_t us) { SysTick-LOAD 72 * us; SysTick-CTRL | 0x05; while ((SysTick-CTRL SysTick_CTRL_COUNTFLAG) 0); SysTick-CTRL ~SysTick_CTRL_ENABLE; } - 72MHz主频SysTick每1个时钟周期 1/72 μs装载值72*us实现对应微秒计数 - CTRL0x05使用内核时钟、关闭中断、开启定时器 - 循环等待COUNTFLAG计数完成标志位计时结束关闭定时器 #### 2毫秒延时 Delay_ms c void Delay_ms(uint16_t ms) { while (ms--) { Delay_us(1000); } } 循环调用1000次微秒延时1000μs 1ms实现毫秒级延时。 #### 3秒级延时 Delay_s c void Delay_s(uint16_t s) { while (s--) { Delay_ms(1000); } } 循环调用1000次毫秒延时1000ms 1s备用扩展延时函数。 ## 五、寄存器操作关键点说明 1. **CRL与CRH区分** PA0~PA7由CRL控制PA8~PA15由CRH控制本程序仅使用PA0~PA7仅操作CRL。 2. **ODR寄存器位操作** - GPIOA-ODR ~(1 n)清除第n位引脚输出低电平 - GPIOA-ODR | (1 n)置位第n位引脚输出高电平 3. **位掩码宏与移位写法** 低引脚PA0~PA6使用标准库宏GPIO_ODR_ODRxPA7采用移位1 7两种写法功能完全等价。 ## 六、运行效果描述 1. 上电瞬间8颗LED全部熄灭 2. 流水顺序LED0(PA0)亮500ms → 熄灭 → LED1(PA1)亮500ms → 熄灭 …… 直至LED7(PA7) 3. LED7熄灭后立刻重新从LED0开始无限循环往复 4. 单灯点亮间隔固定500ms延时精度由SysTick硬件定时器保证无软件空循环误差 ## 七、注意事项与故障排查 ### 1. 硬件问题 - LED不亮检查限流电阻、正负极是否接反、PA引脚接线是否松动 - 全部常亮引脚初始化未拉高或硬件接成共阴极 ### 2. 软件问题 - 流水无延时/速度过快系统时钟未配置为72MHzSysTick装载值不匹配 - 单个LED无反应确认引脚编号、CRL寄存器配置是否正确 - 程序无输出忘记开启RCC_APB2ENR_IOPAEN时钟使能 ## 八、扩展修改建议 1. 调整流水速度修改Delay_ms(500)内数值数值越大流水越慢 2. 增加PA8扩展至9路LED新增CRH寄存器配置循环增加i8逻辑 3. 简化流水代码使用for循环替代重复点灯代码精简main函数 c uint8_t i; for(i0;i8;i) { GPIOA-ODR ~(1i); Delay_ms(500); GPIOA-ODR | (1i); } 4. 双向流水一轮正向走完后增加反向PA7~PA0流水逻辑#include stm32f10x.h void Delay_us(uint16_t us); void Delay_ms(uint16_t ms); void Delay_s(uint16_t s); int main(void) { // 1. 开启GPIOA外设时钟 RCC-APB2ENR | RCC_APB2ENR_IOPAEN; // 2. 配置 PA0~PA7 全部为通用推挽输出 50MHzCRL寄存器 GPIOA-CRL 0x33333333; // 4. 所有引脚默认输出高电平全部关灯 GPIOA-ODR | (GPIO_ODR_ODR0 | GPIO_ODR_ODR1 | GPIO_ODR_ODR2 | GPIO_ODR_ODR3 | GPIO_ODR_ODR4 | GPIO_ODR_ODR5 | GPIO_ODR_ODR6 | GPIO_ODR_ODR7 | (1 7)); // 5. 无限循环流水灯 while(1) { // PA0 GPIOA-ODR ~(1 0); Delay_ms(500); GPIOA-ODR | (1 0); // PA1 GPIOA-ODR ~(1 1); Delay_ms(500); GPIOA-ODR | (1 1); // PA2 GPIOA-ODR ~(1 2); Delay_ms(500); GPIOA-ODR | (1 2); // PA3 GPIOA-ODR ~(1 3); Delay_ms(500); GPIOA-ODR | (1 3); // PA4 GPIOA-ODR ~(1 4); Delay_ms(500); GPIOA-ODR | (1 4); // PA5 GPIOA-ODR ~(1 5); Delay_ms(500); GPIOA-ODR | (1 5); // PA6 GPIOA-ODR ~(1 6); Delay_ms(500); GPIOA-ODR | (1 6); // PA7 GPIOA-ODR ~(1 7); Delay_ms(500); GPIOA-ODR | (1 7); } } // 72MHz系统时钟 微秒级延时 void Delay_us(uint16_t us) { SysTick-LOAD 72 * us; SysTick-CTRL | 0x05; while ((SysTick-CTRL SysTick_CTRL_COUNTFLAG) 0); SysTick-CTRL ~SysTick_CTRL_ENABLE; } void Delay_ms(uint16_t ms) { while (ms--) { Delay_us(1000); } } void Delay_s(uint16_t s) { while (s--) { Delay_ms(1000); } }

相关新闻

江苏省城乡建设官网站怎么查?我踩坑后的真心话

江苏省城乡建设官网站怎么查?我踩坑后的真心话

那天下午,太阳毒得很。我坐在电脑前,头发都要炸了。为了查个施工许可证,我翻遍了百度,搜出来的全是广告。真的,气死个人。那些链接点进去,要么打不开,要么就是乱七八糟的中介。我就想问,咱们普通老百姓,或者小老板,想办点正经事,怎么就这么难呢?后来,还是我那个在…

发布时间:2026/7/12 4:35:12
开封建设企业网站公司怎么选?避开这些坑,省钱又高效

开封建设企业网站公司怎么选?避开这些坑,省钱又高效

昨天下午,我在开封鼓楼区的一家小茶馆里,跟老张喝茶。老张是干建筑起家的,干了十几年,工地跑得多,对互联网这块儿确实有点懵。他皱着眉头跟我说:“我想弄个网站,找个开封建设企业网站公司给我做,结果报价从三千到三万都有,我脑子都大了。”这事儿太典型了。很多老板觉…

发布时间:2026/7/12 4:35:09
湖北省建设教育协会网站首页:别光看热闹,这几点才是真干货

湖北省建设教育协会网站首页:别光看热闹,这几点才是真干货

最近好多同行在群里问,说找不到湖北省建设教育协会网站首页的正确入口,或者进去了也不知道该点哪。说实话,这种迷茫太正常了。毕竟现在网上信息杂七杂八,稍微搜一下全是广告链接,点进去要么打不开,要么就是跳转一堆乱七八糟的培训机构。我作为一个在湖北建筑行业摸爬滚打…

发布时间:2026/7/12 4:34:35
别被忽悠了!台前网站建设公司选错,你的钱真的打水漂了

别被忽悠了!台前网站建设公司选错,你的钱真的打水漂了

我见过太多老板,拿着几万块预算,最后做出来的网站像十年前的产物。真的,心都在滴血。前几天有个做建材的朋友找我吐槽。他说找了一家所谓的“专业团队”,报价8000块,包年维护。结果呢?模板套用,连个后台都进不去,数据全是假的。他问我,为啥现在的台前网站建设公司这么…

发布时间:2026/7/12 5:37:43
资产管理公司网站建设费用怎么入账?别被财务坑了,这笔钱真不能乱记

资产管理公司网站建设费用怎么入账?别被财务坑了,这笔钱真不能乱记

真服了,每次跟做财务的朋友聊天,聊到“资产管理公司网站建设费用怎么入账”这个问题,他们那个眼神,简直像是在看一个不懂规矩的门外汉。我就想问问,咱们搞资产管理的,靠的是专业度和信任感,网站就是咱们的脸面,这钱花出去,到底该怎么记账才合规?别跟我扯什么“按心情…

发布时间:2026/7/12 5:37:41
公司企业网站建设需要哪些核心要素?从0到1避坑指南

公司企业网站建设需要哪些核心要素?从0到1避坑指南

上周帮一个做传统制造业的朋友梳理官网,他焦虑地问我:“公司企业网站建设需要哪些东西才能显得专业?”其实,很多老板觉得建个网站就是找个模板套一下,挂上几个联系方式完事。但现实是,如果网站加载慢、排版乱、内容空洞,客户打开三秒就关了,这比没有网站更伤品牌形象。…

发布时间:2026/7/12 5:37:11
公司网站建设业务文案怎么做才不坑人?老板们听句劝

公司网站建设业务文案怎么做才不坑人?老板们听句劝

公司网站建设业务文案说实话,很多老板拿到网站报价单的时候,心里都在骂娘。为啥?因为太贵,还看不懂。你以为是买辆车,结果人家给你塞了一堆废铁,还说是限量版。咱们开门见山,别整那些虚头巴脑的。做网站,其实就是两件事:好看,好用。但现在的乙方,最爱跟你聊“架构”…

发布时间:2026/7/12 5:37:00
别慌!青海建设厅网站通知刚出,这3类人先别急着辞职,真相在这

别慌!青海建设厅网站通知刚出,这3类人先别急着辞职,真相在这

青海建设厅网站通知刚发下来,很多人第一反应是焦虑。这篇内容直接告诉你,新规到底影响谁,以及你该怎么做。看完这篇,你心里就有底了,不用在那瞎猜。最近群里炸锅了,全是问那个通知的。说实话,我也盯着屏幕看了半天。这玩意儿看着字多,其实核心就那点事。别被那些专业术…

发布时间:2026/7/12 5:36:55
别整那些花里胡哨的,网站建设一屏式网站才是小老板的救命稻草

别整那些花里胡哨的,网站建设一屏式网站才是小老板的救命稻草

上周三半夜两点,我还在改一个客户的稿子。那哥们儿急得在电话那头直拍大腿,说网站打开慢得像蜗牛,客户还没看完第一个屏就关了。我盯着屏幕,心里那个烦啊,真想把键盘砸了。这年头做网站,谁还愿意在那儿填表格、找导航、看长篇大论?大家伙儿刷手机跟吃快餐似的,手指头一…

发布时间:2026/7/12 5:36:37
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/12 0:00:10
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/12 0:00:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/12 0:00:44
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/12 0:00:10
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/12 0:00:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/12 0:00:44
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/11 8:50:55
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/10 18:05:06
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/10 16:48:50