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

STM32_project:led_beep

代码: 

主要部分:

#include "stm32f10x.h"                  // Device header
#include "delay.h"// 给蜂鸣器IO口输出低电平,响,高,不向。
//int main (void)
//{
//    // 开启时钟
//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,  ENABLE); // rcc外设时钟控制的APB2外设接口, 第一个参数选择点亮那个口,第二个参数使能或者失能
//    // 初始化gpioA的PIN0口
//    GPIO_InitTypeDef GPIO_InitStruct;
//    //GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
//    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD ; // 开漏输出,高电平没有驱动能力
//    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
//    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
//    GPIO_Init(GPIOA, &GPIO_InitStruct); // 用结构体初始化gpio口
//    GPIO_SetBits(GPIOA, GPIO_Pin_0);GPIO_ResetBits(GPIOA, GPIO_Pin_0);GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // Bit_RESETGPIO_Write;
//    const int delay_time = 100; // 用来定义常量,有作用域的限制。具有类型检查。
//                                              // const 定义的常量在程序运行时会分配内存,并且具有类型信息不是简单的文本替换。
//   while(1)
//   {
//       GPIO_ResetBits(GPIOA, GPIO_Pin_0);
//       Delay_ms(delay_time);
//       GPIO_SetBits(GPIOA, GPIO_Pin_0);
//       Delay_ms(delay_time);
//       GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); 
//       Delay_ms(delay_time);
//       GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); 
//       Delay_ms(delay_time);
//       
//       GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0); // Bit_RESET 强制类型转换
//       Delay_ms(delay_time);
//       GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)(1)); // Bit_RESET
//       Delay_ms(delay_time);
//   }
//}// 常量定义
const int delay_time = 100; // 用来定义常量,有作用域的限制。具有类型检查。// const 定义的常量在程序运行时会分配内存,并且具有类型信息不是简单的文本替换。
// 函数声明                                   
void liushui(void); 
void liushui1(void); 
void beep(void);
void led_1(void);int main (void)
{// 开启时钟// 可以通过按位或,选择多个引脚。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB,  ENABLE); // rcc外设时钟控制的APB2外设接口, 第一个参数选择点亮那个口,第二个参数使能或者失能// 初始化gpioA的PIN0口GPIO_InitTypeDef GPIO_InitStruct_A;GPIO_InitStruct_A.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出//GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD ; // 开漏输出,高电平没有驱动能力GPIO_InitStruct_A.GPIO_Pin = GPIO_Pin_All;    // PIN0 ~ PIN15 选中所有引脚。GPIO_InitStruct_A.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStruct_A); // 用结构体初始化gpio口// 初始化gpioB的PIN口GPIO_InitTypeDef GPIO_InitStruct_B;GPIO_InitStruct_B.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出GPIO_InitStruct_B.GPIO_Pin = GPIO_Pin_All;    // PIN0 ~ PIN15 选中所有引脚。GPIO_InitStruct_B.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStruct_B); // 用结构体初始化gpio口//  GPIO_SetBits(GPIOA, GPIO_Pin_0);
//  GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 可以同时设置多个引脚
//  GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // Bit_RESET
//  GPIO_Write;while(1){liushui();beep()  ;liushui1();beep()  ;led_1();}
}void led_1()
{int led1 [4] = {0x0081, 0x0042, 0x0024, 0x0018};int i;for(i=0; i <=3 ; i++) {GPIO_Write(GPIOA, ~led1[i]);Delay_ms(delay_time);}beep();for(i=3; i >= 0 ; i--) {GPIO_Write(GPIOA, ~led1[i]);Delay_ms(delay_time);}beep();
}void beep()
{GPIO_ResetBits(GPIOB, GPIO_Pin_12); // 响Delay_ms(delay_time);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(delay_time);GPIO_ResetBits(GPIOB, GPIO_Pin_12); // 响Delay_ms(delay_time);GPIO_SetBits(GPIOB, GPIO_Pin_12);
}void liushui()
{GPIO_Write(GPIOA, ~0x0001);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0002);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0004);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0008);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0010);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0020);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0040);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0080);Delay_ms(delay_time);
}
void liushui1()
{GPIO_Write(GPIOA, ~0x0080);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0040);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0020);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0010);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0008);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0004);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0002);Delay_ms(delay_time);GPIO_Write(GPIOA, ~0x0001);Delay_ms(delay_time);
}

http://www.lryc.cn/news/220749.html

相关文章:

  • [go 反射] 入门
  • 【计算机网络】数据链路层-MAC和ARP协议
  • 本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂
  • WindowsServer2019-搭建FTP服务器
  • 国际阿里云服务器买哪种好用点?
  • 2023NOIP A层联测25 总结
  • Thread类的基本操作(JAVA多线程)
  • Redis 的三种部署模式
  • 【ArcGIS Pro二次开发】(73):使用NPOI库操作Excel
  • python获取电脑所连接的wifi密码
  • 动态壁纸软件Live Wallpaper HD mac中文版功能特色
  • Spring Boot 配置主从数据库实现读写分离
  • 【MongoDB】索引 - 单字段索引
  • 评估大型语言模型:综述
  • 设计模式之工厂模式(Factory)
  • 2023/11/6 JAVA学习
  • Android-JobService
  • GraphQL入门与开源的GraphQL引擎Hasura体验
  • Javascript知识点详解:this关键字的指向问题
  • 数据库的备份和恢复
  • DS图—图非0面积/bfs【数据结构】
  • Wnmp服务安装并结合内网穿透实现公网远程访问——“cpolar内网穿透”
  • 2023版Pycharm关闭一直显示closing project,正在关闭项目
  • Gradle笔记 二 Gradle的基础Groovy
  • 浅谈剩余电流动作继电器在电动伸缩门的应用
  • stable diffusion安装踩坑之clip安装、git报错
  • colmap gpu服务器安装
  • linux内的循环
  • 强化学习(RL)的学习笔记
  • 2023世界传感器大会开幕,汉威科技多领域创新产品引瞩目