项目一、花样流水灯的制作1
利用STM32单片机的8个IO口实现花样流水灯。上电后,间隔点亮每四个LED灯,如图所示:灭开灭开——开灭开灭间隔时间为0.5s.
项目二、花样流水灯的制作2
利用STM32单片机的8个IO口实现花样流水灯。上电后,循环点亮每一个LED灯,间隔时间为0.5s。当k1按下时,控制流水灯在全亮和全熄灭之间循环,间隔时间为0.5s;当k2按下时,控制一个LED灯闪烁,间隔时间为0.5s;当任何按键松开时,恢复循环初始状态。
项目三、LED数码管定时器的制作
利用2位LED数码管制作一个1分钟定时器,最小计时单位为“1秒”,计时显示范围为:0~59。上电时数码管显示“00”,按键K1按下时,定时器开始计时并在数码管上显示;第一次按键K2时,定时器暂停计时,第二次按下K2时,清零。
请问f1的程序怎么写
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 #include "stm32f10x.h" #include "led.h" #include "key.h" u8 num; int main(void) { while(1) { init(); initconfig(); num=ReadKeyDown(); switch(num) { case 0: f0(); break; case 1: f1(); break; case 2: f2(); break; case 3: f3(); break; case 4: f4(); break; } Delay(delay); } }
#include "stm32f10x.h" #include "key.h" void initconfig() { GPIO_InitTypeDef GPIO_InitStructure; /* Configure KEY1 Button */ RCC_APB2PeriphClockCmd(RCC_KEY1, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Pin = GPIO_KEY1; GPIO_Init(GPIO_KEY1_PORT, &GPIO_InitStructure); /* Configure KEY2 Button */ RCC_APB2PeriphClockCmd(RCC_KEY2, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Pin = GPIO_KEY2; GPIO_Init(GPIO_KEY2_PORT, &GPIO_InitStructure); /* Configure KEY3 Button */ RCC_APB2PeriphClockCmd(RCC_KEY3, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Pin = GPIO_KEY3; GPIO_Init(GPIO_KEY3_PORT, &GPIO_InitStructure); /* Configure KEY4 Button */ RCC_APB2PeriphClockCmd(RCC_KEY4, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Pin = GPIO_KEY4; GPIO_Init(GPIO_KEY4_PORT, &GPIO_InitStructure); } u8 ReadKeyDown(void) { /* 1 key is pressed */ if(!GPIO_ReadInputDataBit(GPIO_KEY1_PORT, GPIO_KEY1)) { return KEY1; } /* 2 key is pressed */ if(!GPIO_ReadInputDataBit(GPIO_KEY2_PORT, GPIO_KEY2)) { return KEY2; } /* 3 key is pressed */ if(!GPIO_ReadInputDataBit(GPIO_KEY3_PORT, GPIO_KEY3)) { return KEY3; } /* 4 key is pressed */ if(!GPIO_ReadInputDataBit(GPIO_KEY4_PORT, GPIO_KEY4)) { return KEY4; } /* No key is pressed */ else { return NOKEY; } }
#include "stm32f10x.h" #include "led.h" #include "key.h" u8 n; void init() { GPIO_InitTypeDef GPIO_InitStructure; /* 配置LED灯使用的GPIO管脚模式*/ RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE); /*使能LED灯使用的GPIO时钟*/ GPIO_InitStructure.GPIO_Pin = LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIO_LED, &GPIO_InitStructure); /*使用的LED灯相关的GPIO口初始化*/ GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN);/*关闭所有的LED指示灯*/ } void Delay(vu32 nCount) { for(; nCount != 0; nCount--); } void f1() { GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD4_PIN|LD5_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD3_PIN|LD6_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD2_PIN|LD7_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD1_PIN|LD8_PIN); Delay(delay); n=ReadKeyDown(); if(n==0)f1(); } void f2() { GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD1_PIN|LD3_PIN|LD5_PIN|LD7_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD2_PIN|LD4_PIN|LD6_PIN|LD8_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); n=ReadKeyDown(); if(n==0)f2(); } void f3() { GPIO_SetBits(GPIO_LED,LD1_PIN|LD8_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD2_PIN|LD7_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD3_PIN|LD6_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD4_PIN|LD5_PIN); Delay(delay); GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); n=ReadKeyDown(); if(n==0)f3(); } void f0() { GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); } void f4() { GPIO_ResetBits(GPIO_LED,LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD1_PIN|LD2_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD3_PIN|LD4_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD5_PIN|LD6_PIN); Delay(delay); GPIO_SetBits(GPIO_LED,LD7_PIN|LD8_PIN); Delay(delay); n=ReadKeyDown(); if(n==0)f4(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥150 HDMI分路器LT86102 的输出在890MHz频点处EMC超标8DB
- ¥36 如何安全的迁移用户C盘用户文件(戴尔电脑)
- ¥15 druid(相关搜索:数据库|防火墙)
- ¥15 大一python作业
- ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
- ¥60 如何鉴定微信小程序数据被篡改过
- ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
- ¥20 C#上传XML格式数据
- ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
- ¥20 手机截图相片分辨率降低一半