STM32点灯闪烁

stm32c8t6引脚图

开发板引脚图

GPIO端口的每个位可以由软件分别配置成 多种模式。

─ 输入浮空

─ 输入上拉

─ 输入下拉

─ 模拟输入

─ 开漏输出

─ 推挽式输出

─ 推挽式复用功能

─ 开漏复用功能

配置GPIO端口步骤:开启时钟->使用结构体设置输出模式、引脚、速度->初始化GPIO。

    //开启时钟GPIOCRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//定义结构体变量GPIO_InitTypeDef GPIO_InitStructuer;//设置GPIO模式,推挽输出模式GPIO_InitStructuer.GPIO_Mode = GPIO_Mode_Out_PP;//设置GPIO引脚GPIO_InitStructuer.GPIO_Pin = GPIO_Pin_13;//设置GPIO速度GPIO_InitStructuer.GPIO_Speed = GPIO_Speed_50MHz;//传入结构体,初始化GPIOGPIO_Init(GPIOC,&GPIO_InitStructuer);

在stm32f10x_gpio.h文件中可以看到,读、写、初始GPIO函数有

void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

这样就可以实现点灯闪烁操作了

#include "stm32f10x.h"                  // Device header
#include "Delay.h" int main()
{//开启时钟GPIOCRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//定义结构体变量GPIO_InitTypeDef GPIO_InitStructuer;//设置GPIO模式,推挽输出模式GPIO_InitStructuer.GPIO_Mode = GPIO_Mode_Out_PP;//设置GPIO引脚GPIO_InitStructuer.GPIO_Pin = GPIO_Pin_13;//设置GPIO速度GPIO_InitStructuer.GPIO_Speed = GPIO_Speed_50MHz;//传入结构体,初始化GPIOGPIO_Init(GPIOC,&GPIO_InitStructuer);//设置PC13为低电平//GPIO_ResetBits(GPIOC,GPIO_Pin_13);//设置PC13为高电平//GPIO_SetBits(GPIOC,GPIO_Pin_13);while(1){//设置PC13为低电平GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);Delay_ms(500);//设置PC13为高电平GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);Delay_ms(500);}	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/42612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水仙花数算法

一、水仙花的传说 希腊神话故事 传说希腊神话里,美少年纳西索斯(Narcissus)是希腊最俊美的男子,无数的少女对他一见倾心,可他却自负地拒绝了所有的人。这当中包括美丽的山中仙女伊可(Echo)。伊可…

分享一些提升效率的办公、学习神器!

分享一些提升效率的办公、学习神器! 文章目录 分享一些提升效率的办公、学习神器! 一、 ✅ 文件搜索工具 Everything:1.1 Everything 主要功能:1.2 Everything 下载地址: 二、 ✅ 文件压缩解压工具 7 - Zip&#xff1a…

AI免费英语学习在线工具:Pi;gpt;其他大模型AI 英语学习智能体工具

1、pi(强烈推荐:可以安卓下载使用) https://pi.ai/talk (网络国内使用方便) 支持实时聊天与语音对话 2、chatgpt(强烈推荐:可以安卓下载使用) https://chat.openai.com/ (网络国内使用不方便&#xf…

2028年企业云存储支出翻倍,达到1280亿美元

根据Omdia的研究,到2028年,企业云存储支出将从去年的570亿美元翻一番以上,达到1280亿美元。该研究分析了基础设施即服务(IaaS)和平台即服务(PaaS)数据中心的收入,作为年度存储数据服…

C++初学者指南-4.诊断---valgrind

C初学者指南-4.诊断—Valgrind Valgrind(内存错误检测工具) 检测常见运行时错误 读/写释放的内存或不正确的堆栈区域使用未初始化的值不正确的内存释放,如双重释放滥用内存分配函数内存泄漏–非故意的内存消耗通常与程序逻辑缺陷有关&#xf…

Halcon 背景网格产品刮伤缺陷检测

* 关闭窗口 dev_close_window ()*关闭程序计数器,图形变量更新,窗口图形更新 dev_update_off ()*设置图像路径 Path : lcd/mura_defects_blur_*读取一张图像 read_image (Image, Path 01)*获取图像大小 get_image_size (Image, Width, Height)*创建一个新窗体 dev_open_window…

Apache Seata应用侧启动过程剖析——注册中心与配置中心模块

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata应用侧启动过程剖析——注册中心与配置中心模块 前言 在Seata的应用侧&#xf…

SpringBoot Elasticsearch painless 查询某个属性是否存在的复杂判断for循环判断,深入理解Painless脚本查询

在使用Spring Boot与Elasticsearch结合进行搜索应用开发时,我们经常会遇到需要对文档中的数组或列表类型字段进行复杂查询的情况。Elasticsearch的Painless脚本语言提供了一种强大的方式来执行这类查询,允许开发者在查询时执行自定义的逻辑判断。 深入理…

强化训练:day13(牛牛冲钻五、最长无重复子数组、重排字符串)

文章目录 前言1. 牛牛冲钻五1.1 题目描述1.2 解题思路1.3 代码实现 2. 最长无重复子数组2.1 题目描述2.2 解题思路2.3 代码实现 3. 重排字符串3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 牛牛冲钻五   2. 最长无重复子数组   3. 重排字符串 1. 牛牛冲钻五 1.1 题…

【Scrapy】深入了解 Scrapy 中间件中的 process_spider_output 方法

准我快乐地重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 再去做没流着情泪的伊人 假装再有从前演过的戏份 重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 你纵是未明白仍夜深一人 穿起你那无言毛衣当跟你接近 🎵 陈慧娴《傻女》 Scrapy 是…

使用Python连接本地MySQL数据库并创建表

一、使用Python连接本地MySQL数据库并创建表 端口号:3307 用户名:root 密码:lms123456 数据库:test_01 from orm import *# 数据库连接对象 db MySQLDatabase(host"localhost",port3307,user"root",pas…

CUDA Install--Configure

CUDA环境正确设置 要确保你的系统环境变量正确设置,以包含CUDA 12.2的路径,可以按照以下步骤操作 步骤1:编辑.bashrc文件 打开并编辑你的.bashrc文件,以确保环境变量正确设置。 nano ~/.bashrc 在文件末尾添加以下内容&#xff…

LeetCode 35, 242, 994

目录 35. 搜索插入位置题目链接标签思路代码 242. 有效的字母异位词题目链接标签思路代码 994. 腐烂的橘子题目链接标签思路代码 35. 搜索插入位置 题目链接 35. 搜索插入位置 标签 数组 二分查找 思路 本题与 704. 二分查找 十分相似,只不过本题在找不到 tar…

llama2阅读: logits是什么?

Logits是一个在深度学习中,几乎一直都有的概念,它意味着模型unnormalized final scores. 然后你可以通过softmax得到模型针对你class的概率分布。 而在llama2的代码中,同样有logits的使用,那么针对llama2,logits的作用…

centos7.9安装redis

安装redis mkdir redis sudo yum install epel-release -y sudo yum update -y sudo yum install redis -y sudo systemctl start redis sudo systemctl enable redis redis-cli ping sudo yum install gcc make -y wget http://download.redis.io/releases/redis-6.0.9.tar.…

CF构造题

1900-2100 1.Arithmancy (Easy) 注意题目要求唯一对应,也就是不能存在两种选择使得这两种选择的"power"都是一样的 Ans && Conclusion

零知识证明;电路,编码,多项式是什么;零知识验证流程

目录 零知识证明怎么应用到神经网络模型不变的验证中 应用背景 应用过程 举例说明 技术挑战与解决方案 实际应用案例 零知识中,电路,编码,多项式是什么 电路(Circuit) 编码(Coding) 多项式(Polynomial) 零知识中涉及的概念 零知识验证流程 零知识证明怎么…

Sequelize 操作 MySQL 数据库

安装 npm install --save sequelize安装驱动程序: npm install --save mysql2连接到数据库 要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成: const {Sequelize} re…

ActiViz实战:vtkMath中的陷阱

文章目录 一、vtkMath简介二、vtkMath在C#中的使用三、C#版本vtkMath的陷阱四、vtkPlane同理五、总结一、vtkMath简介 vtkMath是VTK(Visualization Toolkit)库中的一个核心类,它提供了一系列用于执行基本数学运算和高级数学计算的静态方法。这个类主要用于矢量和矩阵运算,…

Canal架构以及使用规范

Canal架构以及使用规范 一、Canal的作用 相关文档:GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可…