第一个跑马灯实验

2023-10-26

如何新建一个工程

1.打开工程模板,删除其他不重要的库文件,把main()函数里的内容删除;
不用的外设固件库文件可以删掉,节省编译时间
在这里插入图片描述
rcc 时钟使能
usart 串口
在这里插入图片描述
复用映射
setbits 设置高电平 resetbits 低电平
2,在工程文件夹里新建一个HARDWARE文件夹,里边放你想写的程序标题(如LED)
3,在工程里添加这个文件夹
在这里插入图片描述
在这里插入图片描述
4,新建.c 和 .h 文件,然后添加到HARDWARE文件夹下面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.因为定义了一个.h头文件,我们需要把他加到头文件路径里,
在这里插入图片描述
在这里插入图片描述

跑马灯硬件连接

yin在这里插入图片描述
因为要输出高低电平,所以采用推挽(上拉)输出(PS:推挽可以输出强高低电平,开漏只能输出强低电平)


程序步骤


在这里插入图片描述

.c文件

void LED_Init(void)
{    	 
  GPIO_InitTypeDef  GPIO_InitStructure;             //定义一个结构体

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//时钟使能
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;// LED的IO口
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;  //输出
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);     //初始化完成
	GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);   //灯是灭的  初始化要给高电平
}

输入 输出 复用 模拟 四种模式
在这里插入图片描述
输出类型 推挽 或 开漏
在这里插入图片描述

main()函数

int main(void)
{
	delay_init(168);//延时函数初始化  根据时钟设置    一秒
	LED_Init();//LED初始化
	while(1)
	{
	GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);//拉高同时灭
	delay_ms(500);
	GPIO_ResetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);拉低同时亮
	delay_ms(500);
	}
	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一个跑马灯实验 的相关文章

  • linux安装docker 教程

    1 卸载之前安装的docker sudo 以管理员身份运行 sudo yum remove docker docker client docker client latest docker common docker latest dock
  • 学习机器学习选择python,还是spark,Scala?

    这种问法是初接触者的困惑 尤其是现在铺天盖地的python机器学习课程 会让人以为python就是工作中主流了 那spark是干什么呢 Scala这个名字好像也听过 以下摘自一段相对好理解的回答 spark是用在大数据场景中的 python
  • Premiere Pro CC2018安装资料及安装教程

    简介 Adobe Premiere是一款常用的视频编辑软件 由Adobe公司推出 现在常用的版本有CS4 CS5 CS6 CC 2014 CC 2015 CC 2017 CC 2018以及CC 2019版本 Adobe Premiere是一
  • 论文写作 12: 算法伪代码 (含实例)

    算法伪代码是论文的核心之一 需要说明输入 输出 方法 函数 名可写可不写 如果被别的方法调用就必须写 需要写出主要步骤的注释 长度控制在 15 30 行 可使用数学式子或对已有数学式子的引用 不重要的步骤可以省略 一般需要进行时间 空间复杂
  • 详解Nginx proxy_pass 使用

    前言 日常不管是研发还是运维 都多少会使用Nginx服务 很多情况Nginx用于反向代理 那就离不开使用proxy pass 有些同学会对 proxy pass 转发代理时 后面url加 后面url没有 后面url添加其它路由等场景 不能很
  • en结尾的单词_知识丨英语单词中最常见的328个前缀后缀,高效背单词必备!

    北京高考资讯 争取给你更好的 更新鲜的高考资讯 记忆单词最好的两个办法就是 结合语境和运用构词法 构词法包括派生 即我们平时说的前后缀 合成和转化 而派生在构词法中是最重要的 今天老师带大家来看一下高中阶段涉及到的328个前后缀都有哪些 记
  • 这19款最好用的免费安全工具,使用不当或许面临牢狱之灾。

    前言 大家好 我是周杰伦 工具本身没有好坏 但如果能充分利用好的工具 往往能达到意想不到的效果 安全行业尤其如此 这期推荐的是一些免费而且很优秀的安全软件工具 无论是渗透测试 开源情报 还是漏洞评估 都能让安全人的日常工作更轻松 将近 20
  • 软件测试面试题—选择题2

    选择题 1 验收测试的测试用例主要根据 的结果来设计 A 需求分析 B 源程序 C 概要设计 D 详细设计 答案 A 2 以下不属于应用系统中的缺陷类型的是 A 不恰当的需求解释 B 用户指定的错误需求 C 设计人员的习惯不好 D 不正确的
  • 最简单的分类算法之一:KNN(原理解析+代码实现)

    KNN K Nearest Neighbor 即K最邻近算法 是数据挖掘分类技术中最简单的方法之一 简单来说 它是根据 最邻近 这一特征来对样本进行分类 目录 1 大致了解KNN 2 原理分析 2 1一些数学知识 2 2算法思想 3 代码实
  • linux 在服务器上挂硬盘,linux如何挂载硬盘linux服务器上挂载磁盘(图文详解)...

    博主最近在研究服务器运维 由于Linux服务器相对比较困难 所以博主对她情有独钟 而window服务器几乎跟我们平常使用的电脑一样 相对简单感觉索然无味 下面正式进入主题教大家linux如何挂载硬盘 首先解答一个新手朋友都会问的问题 而且这
  • Inno setup Run Win7管理员运行属性

    runascurrentuser If this flag is specified the spawned process will inherit Setup Uninstall s user credentials typically
  • 《Angular2入门系列实践》——实现页面动画效果

    前言 在前端的路上越走越远 也希望利用angular2使自己的页面效果更加美观 所以从官网上学习了一下 内容 1 写animation ts import animate AnimationEntryMetadata state style

随机推荐

  • leetcode暴力屎山代码(一)——leetcode4

    题目 给定两个大小分别为 m 和 n 的正序 从小到大 数组 nums1 和 nums2 请你找出并返回这两个正序数组的 中位数 思路 由于两数组是有序排列的 所以可以通过计算两个数组中位数的索引 mid 并通过双指针从左到右遍历找到第mi
  • 重学webpack5——生产环境配置

    目录 前言 一 CSS文件 1 提取css 成单独文件 2 CSS兼容性处理 3 压缩CSS 二 Js文件 1 JS语法检查eslint 2 JS兼容性处理 3 JS压缩 三 HTML文件 四 生产环境总结 前言 生产环境是能让代码优化上线
  • selenium应用

    Selenium 学习参考 http selenium python readthedocs io 自动化测试工具 它支持各种浏览器 包括 Chrome Safari Firefox 等主流界面式浏览器 如果在这些浏览器里面安装一个 Sel
  • Elasticsearch RestHighLevelClient API 使用总结

    Elasticsearch RestHighLevelClient API 使用总结 题记 深秋初冬的一个晚上 突然间收到业务一个需求 要在老系统上使用新系统Elasticsearch库的数据 目前项目情况 新 老系统并行运行 根据产品 渠
  • 关于ftp上传文件系统时间差8个小时的时区问题

    2022年5月20日09 14 28 昨天上传代码出现一个奇怪的问题 就是视图缓存一直不更新 一开始以为是解析层waf的缓存不更新 导致waf不更新的原因是因为代码层的生产的视图缓存不更新 导致代码层的缓存不更新的是 就是ftp上传时间和服
  • git php 代码检查,gitlab下对php代码进行检测

    我们都知道 有一个世界上最好的语言 但在实际项目中也要考虑下历史的进程 避免一些错误导致程序无法运行 比如语法上的错误 所以我们要对代码进行检测 实现这个目标需要解决几个问题 什么时候检测代码 并拒绝异常代码的提交 以什么做标准 通过什么工
  • Latex公式太长,换行的两种方式

    latex中公式进行换行 begin equation begin aligned Ttran i j j 1 frac R bd j j 1 ij AR bd j j 1 ij times T ideal tran ij v u in l
  • 2020年总结:互联网思维下的工业软件开发

    2020年的年终总结像往年一样如期而至 今年是个特殊的年份 疫情爆发 全国人民众志成城 支援武汉 把武汉疫情完美控制 接下来经历了一个整年的抗疫生活 见证了一个个门店的倒下 站起 一个个公司申请破产 又一个个公司申请登记注册 这一个年 见证
  • fread函数解析

    fread函数解析 1 size t fread void buffer size t elementsize size t count FILE stream return fread s buffer SIZE MAX elements
  • 微信小程序纯css实现一个弹出的菜单

    1 实现效果 2 实现原理 animation动画 transform属性 rotateZ translate 3 实现代码
  • 必读:学习C语言编程的路线图

    学习C语言编程 可以丰富编程思维的训练和经验 以下是一些学习C语言编程的路线图 设置开发环境 在计算机上安装C编译器 GNU编译器集合 GCC 是一个流行的选择 适用于Windows macOS和Linux等各种操作系统 安装IDE编程环境
  • 数据清洗方法

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1220 1 数据错误 脏数据或错误数据 比如 温度 2003 数据不正确 0 代表真实的0还是代表缺失 数据不一致 2 删除重复值 删除重复
  • Shell脚本——条件语句

    shell脚本 编程条件语句 条件测试 if语句 case分支语句 一 条件测试 1 1 Test命令 1 2 文件测试 1 3整数值比较 1 4字符串比较 1 5逻辑测试 二 if语句 2 1 单分支结构 2 2双分支结构 2 3多分支结
  • Eclipse 语言包下载

    1 登陆http www eclipse org babel downloads php 选择你的eclipse版本 2 找到IDE中文补丁包 INDIGO的地址如下 http download eclipse org technology
  • Maven(六) eclipse 使用Maven deploy命令部署构建到Nexus

    转载于 http blog csdn net jun55xiu article details 43051627 1 应用场景 SYS UTIL 系统工具 项目部署 构建成JAR包 SYS UTIL XXX jar 存储到Nexus私服上
  • spring boot 使用application.properties 进行外部配置

    application properties大家都不陌生 我们在开发的时候 经常使用它来配置一些可以手动修改而且不用编译的变量 这样的作用在于 打成war包或者jar用于生产环境时 我们可以手动修改环境变量而不用再重新编译 spring b
  • python里的pypi是干什么用的_【python工具篇】pip和pypi

    PyPI the Python Package Index The Python Package Index is a repository of software for the Python programming language T
  • HTTP中GET,POST和PUT的区别

    一 HTTP中定义了以下几种请求方法 1 GET 2 POST 3 PUT 4 DELETE 5 HEAD 6 TRACE 7 OPTIONS 二 各个方法介绍 1 GET方法 对这个资源的查操作 2 DELETE方法 对这个资源的删操作
  • 电脑检测不到第二个显示器的解决方法

    一般是因为显示适配器被失效了 右击开始菜单 选择 设备管理器 再选择 显示适配器 这时图标上一般会带上感叹号 右击后选择禁用 再选择启用就能检测到第二个显示器
  • 第一个跑马灯实验

    如何新建一个工程 1 打开工程模板 删除其他不重要的库文件 把main 函数里的内容删除 不用的外设固件库文件可以删掉 节省编译时间 rcc 时钟使能 usart 串口 复用映射 setbits 设置高电平 resetbits 低电平 2