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);
}
相关文章:
STM32_project:led_beep
代码: 主要部分: #include "stm32f10x.h" // Device header #include "delay.h"// 给蜂鸣器IO口输出低电平,响,高,不向。 //int main (void) //{ // // 开启时钟 // RC…...
[go 反射] 入门
[go 反射] 入门 首先认识go 反射的两大概念,反射之路少不了他们 reflect.Type(接口)获取类型,和列名就找它reflect.Value(结构体)获取值,设置值找它 [tips] 通常是用这两者手底下的方法,reflect.Value结构体中有什么自行查看 …...
【计算机网络】数据链路层-MAC和ARP协议
文章目录 1. 认识以太网2. MAC协议MAC帧的格式MAC地址和IP地址的区别MTU 3. 局域网通信原理碰撞检测和避免 4. ARP协议ARP数据报的格式ARP缓存 1. 认识以太网 网络层解决的是跨网络点到点传输的问题,数据链路层解决的是同一网络中的通信。 数据链路层负责在同一局域…...
本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂
本周三将迎来26.2版本更新与11商店大更新,版本更新可点击26.2版本更新公告进行查看,这里不一一赘述了,下面大概罗列一下商店更新,有皮肤下架,大家还能趁最后时间入手,最重要的是四款升级武器返厂咯。 危险玩…...
WindowsServer2019-搭建FTP服务器
这里写自定义目录标题 一、基础配置IP地址安装FTP服务检查连通性Windows10连接FTP服务 二、了解和使用FTP具体模块及其配置1、FTP IP地址和域限制2、FTP SSL设置3、FTP当前会话4、FTP防火墙5、FTP目录浏览6、FTP请求筛选7、FTP日志8、FTP身份验证9、FTP授权规则10、FTP消息11、…...
国际阿里云服务器买哪种好用点?
在当时数字化年代,云核算已经成为了企业进行事务运营和数据存储的重要东西。而阿里云作为我国最大的云核算服务供给商,其服务器产品线也适当丰厚。那么,对于用户来说,阿里云服务器买哪种好用点呢?这需求依据个人和企业…...
2023NOIP A层联测25 总结
T1 让你构造 40 40 40\times40 4040 的只含 r,y,x 的矩阵,含有 r y x ryx ryx 的个数恰好为 n n n, n ≤ 2222 n\le2222 n≤2222。看完题后就开始想构造,一开始想构造 3 ∗ 3 3*3 3∗3, 5 ∗ 5 5*5 5∗5 的单位矩阵的,但是始…...
Thread类的基本操作(JAVA多线程)
线程是操作系统中的概念,操作系统内核实现了线程这样的机制,并提供了一些API供外部使用。 JAVA中 Thread类 将系统提供的API又近一步进行了抽象和封装,所以如果想要使用多线程就离不开 Thread 这个类。 线程的创建(Thread类) 在JAVA中 创建…...
Redis 的三种部署模式
提前叠个 buff:这个文章不涉及图(画起来比较麻烦),只是记录我的胡思乱想。 redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式 单机模式 新手入门模…...
【ArcGIS Pro二次开发】(73):使用NPOI库操作Excel
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 相较于之前使用的Microsoft.Office.Interop.Excel,已经感觉到的优势,一是读写速度较快,虽然小数据量的读…...
python获取电脑所连接的wifi密码
电脑连接wifi后,很难直观地看到当前连接wifi的密码,需要借助命令行公管局才可以查看到相关信息。 CMD命令 查看所有已保存的wifi配置信息 netsh wlan show profiles查看某一个wifi的详细信息,需要输入wifi名称来查询 netsh wlan show pro…...
动态壁纸软件Live Wallpaper HD mac中文版功能特色
Live Wallpaper HD mac提供了一系列美丽的主题场景,将为您的桌面增添活力。从城市景观、日落到遥远的星系,每个屏幕都有特别的触感,可以定制您的天气小部件和时钟样式,并使用您喜爱的图片创建您自己的个性化壁纸。 Living Wallpap…...
Spring Boot 配置主从数据库实现读写分离
一、前言 现在的 Web 应用大都是读多写少。除了缓存以外还可以通过数据库 “主从复制” 架构,把读请求路由到从数据库节点上,实现读写分离,从而大大提高应用的吞吐量。 通常,我们在 Spring Boot 中只会用到一个数据源࿰…...
【MongoDB】索引 - 单字段索引
MongoDB支持在集合文档中的任意字段上创建索引,默认情况下所有的集合都有一个_id字段的索引,用户和应用可以新增索引用于查询和操作。 一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, clas…...
评估大型语言模型:综述
论文地址:https://arxiv.org/pdf/2310.19736v2.pdf github: tjunlp-lab/awesome-llms-evaluation-… 发表团队:Tianjin University 摘要 将LLM评估划分三点:知识和能力评估、一致性评估和安全性评估。特定领域化评估benchmark评…...
设计模式之工厂模式(Factory)
任何可以产生对象的方法或类,都可以称为工厂。 下面的代码定义了Car这种交通工具: public class Car {public void go() {System.out.println("Car go wuwuwuwuw....");} }然后在main函数里面想要调用调用Car的go方法,就需要new一个car对象&…...
2023/11/6 JAVA学习
处理编译异常的两种方法 第一种 第二种 问题比较容易犯,编译时异常...
Android-JobService
JobService 这里写目录标题 JobService一、API详解1 onStartJob2 onStopJob 二、onStartJob | onStopJob 返回值case 1case 2case 3 ref: 深入理解JobScheduler与JobService的使用 - 掘金 (juejin.cn) (28条消息) JobService的使用介绍_TechMerger的博客-CSDN博客 (28条消息) J…...
GraphQL入门与开源的GraphQL引擎Hasura体验
背景 Hasura 是一个开源的 GraphQL 引擎,它可以帮助开发人员快速构建和部署现代应用程序的后端。它提供了一个自动化的 GraphQL API ,可以直接连接到现有的数据库,并提供实时数据推送和订阅功能。 Hasura 团队总部位于印度。 下载安装 脚本…...
Javascript知识点详解:this关键字的指向问题
目录 this 关键字 涵义 实质 使用场合 使用注意点 避免多层 this 避免数组处理方法中的 this 避免回调函数中的 this 绑定 this 的方法 Function.prototype.call() Function.prototype.apply() Function.prototype.bind() 箭头函数中的 this this 关键字 涵义 t…...
避坑指南:通达信DLL加密常见的5大误区与替代方案
通达信指标加密实战:5种DLL开发陷阱与零代码解决方案 在量化交易领域,指标公式的保护一直是开发者面临的棘手问题。最近三个月内,某金融开发者社区关于"通达信DLL加密失败"的求助帖增长了47%,暴露出传统加密方案存在显…...
Pixel Aurora Engine快速部署:阿里云ECS轻量服务器一键安装脚本
Pixel Aurora Engine快速部署:阿里云ECS轻量服务器一键安装脚本 1. 像素极光引擎简介 Pixel Aurora(像素极光)是一款基于AI扩散模型的高端绘图工作站,采用独特的复古像素游戏风格界面设计。这款创意引擎能够将文字描述转化为极具…...
实战应用:基于快马平台开发具备origin高级分析功能的在线工具
今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗,Origin这类软件的分析功能确实强大,但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
usearch的内存泄漏自动化测试:在CI中集成泄漏检测
usearch的内存泄漏自动化测试:在CI中集成泄漏检测 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & 🔜 Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolf…...
Python入门项目:用10行代码调用MogFace-large实现人脸检测
Python入门项目:用10行代码调用MogFace-large实现人脸检测 想学Python,但觉得枯燥的理论和语法让人昏昏欲睡?今天咱们换个玩法,直接上手一个能“看得见摸得着”的实战项目。想象一下,你只需要写10行左右的代码&#x…...
Windows右键菜单效率革命:ContextMenuManager极简操作与深度定制指南
Windows右键菜单效率革命:ContextMenuManager极简操作与深度定制指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 每天面对电脑上杂乱的右键菜单&…...
Mac用户的移动Win10工坊:从WTG配置到驱动、激活、文件共享的完整避坑指南
Mac用户的移动Win10工坊:从WTG配置到驱动、激活、文件共享的完整避坑指南 当Mac用户需要运行Windows应用时,双系统方案往往是最佳选择。而通过Windows To Go(WTG)技术将Win10安装在移动硬盘上,不仅保留了Mac原生系统的…...
Graphormer企业级应用:制药公司分子筛选流水线中的轻量部署实践
Graphormer企业级应用:制药公司分子筛选流水线中的轻量部署实践 1. 项目背景与价值 在药物研发领域,分子筛选是耗时耗力的关键环节。传统实验方法需要数月时间才能完成数千种化合物的性质测试,而基于AI的分子属性预测技术可以将这一过程缩短…...
Lingbot-Depth-Pretrain-ViTL-14 Anaconda环境搭建:创建隔离的Python开发与推理环境
Lingbot-Depth-Pretrain-ViTL-14 Anaconda环境搭建:创建隔离的Python开发与推理环境 你是不是也遇到过这种情况:好不容易跟着教程跑通了一个AI项目,结果过两天想跑另一个项目时,发现各种库版本冲突,报错满天飞&#x…...
