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

无为县住房和城乡建设局网站首页东莞能做网站的公司

无为县住房和城乡建设局网站首页,东莞能做网站的公司,如何做自己的淘宝网站,网址百度刷排名写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.02 STM32开发板学习——第6节: [3-2] LED闪烁&LED流水灯&蜂鸣器 前言开发板…

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.04.02

STM32开发板学习——第6节: [3-2] LED闪烁&LED流水灯&蜂鸣器

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、LED闪烁
  • 二、LED流水灯
  • 三、蜂鸣器
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。另外我也购买了江科大的学习套间。
   原理图如下
1、开发板原理图
在这里插入图片描述
2、STM32F103C6和51对比
在这里插入图片描述
3、STM32F103C6核心板
在这里插入图片描述

视频中的都用这个开发板来实现,如果有资源就利用起来。另外也计划实现江协科技的套件。

下图是实物图
在这里插入图片描述

引用

【STM32入门教程-2023版 细致讲解 中文字幕】
还参考了下图中的书籍:
STM32库开发实战指南:基于STM32F103(第2版)
在这里插入图片描述
数据手册

解答和科普

一、LED闪烁

在这里插入图片描述

新建一个工程,需要新建Start、Library、User
1、创立Start文件夹:文件从Libaries-CMSIS-CM3-DeviceSupport-ST-STM32F10x-startup-arm,这些就是STM32的启动文件,STM32的程序就是从启动文件开始执行的。
然后startup文件夹同级的stm32f10x.h(STM32外设寄存器描述文件和51单片机RGEX52.H一样);这两个system文件是用来配置时钟的,STM32主频72MHz,就是system文件里的函数配置的。
STM32是内核和内核外围的设备组成的,所以还要加入一个内核寄存器的描述文件:DeviceSupport同级的Libaries-CMSIS-CM3-CoreSupport中的两个cm3就是内核的寄存器描述
在这里插入图片描述

2、Library存放库函数:打开固件库Libaries-STM32F10x_StdPeriph_Driver(标准外设驱动)-src中的文件,其中misc是内核的库文件,其他的就是内核外的外设库函数
打开固件库的inc文件夹,这些是库函数的头文件,继续ctrl+A全选
在这里插入图片描述

3、User文件夹: 打开固件库文件夹,打开Project-STM32Template,选择main、stm32f10x_conf.h和两个it结尾的文件,conf文件是用来配置库函数头文件的包含关系的,还有用来参数检查的函数定义,这是所有库函数都需要的,两个it文件是用来存放中断函数的。
在这里插入图片描述

工程文件复制完成
在keil创建三个组:Start、Library、User、添加文件;
Start文件添加带md.s,然后选择其他的.c.h文件,选择并添加
Library是all files Ctrl+A全选
User也是一样all files Ctrl+A全选
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意要留有空行

在这里插入图片描述
批处理文件可以把工程编译产生的中间文件都删掉
在这里插入图片描述

1.1控制LED的亮灭

#include "stm32f10x.h"                  // Device headerint main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);}
}

1.2LED闪烁
用到延迟函数
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用SysTick定时器来实现的延迟,具体怎么实现的,暂时不用管。直接拿来用。

#include "stm32f10x.h"/*** @brief  微秒级延时* @param  xus 延时时长,范围:0~233015* @retval 无*/
void Delay_us(uint32_t xus)
{SysTick->LOAD = 72 * xus;				//设置定时器重装值SysTick->VAL = 0x00;					//清空当前计数值SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器while(!(SysTick->CTRL & 0x00010000));	//等待计数到0SysTick->CTRL = 0x00000004;				//关闭定时器
}/*** @brief  毫秒级延时* @param  xms 延时时长,范围:0~4294967295* @retval 无*/
void Delay_ms(uint32_t xms)
{while(xms--){Delay_us(1000);}
}/*** @brief  秒级延时* @param  xs 延时时长,范围:0~4294967295* @retval 无*/
void Delay_s(uint32_t xs)
{while(xs--){Delay_ms(1000);}
} 

在这里插入图片描述
实验现象

LED闪烁

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);}
}
#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);		//强制转换类型为BitActionDelay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);		//强制转换类型为BitActionDelay_ms(500);}
}

推挽输出的驱动能力
在这里插入图片描述
在推挽模式下,高低电平都是有驱动能力的。
在这里插入图片描述
在这里插入图片描述
一般输出就用推挽输出就行了。

二、LED流水灯

在这里插入图片描述
0000 0000 0000 0001
0000 0000 0000 0010
0000 0000 0000 0100
0000 0000 0000 1000

1111 1111 1111 1111
为1就是选择哪个引脚,如果是按位|就是把响应为置1,也就是选择相应的引脚,all是全部是1,也就是选中所有的引脚。
在这里插入图片描述
也是可以选择多个时钟按位|

在这里插入图片描述

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){GPIO_Write(GPIOA,~0x0001);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0002);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0004);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0008);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0010);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0020);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0040);			//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0080);			//0000 0000 0000 0001Delay_ms(500);}
}

流水灯可以改变数据,或者定义一个数组,依次取出数组中的数据来进行花式点灯。
实验现象

LED流水灯

三、蜂鸣器

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_4);Delay_ms(500);GPIO_SetBits(GPIOB,GPIO_Pin_4);Delay_ms(500);}
}

问题是我这个蜂鸣器好像是B4,因为这个引脚是用来调试的,好像需要重新映射,所以我好想不能直接这样,哭了。
新的来了
我如果想完成就可以直接用杜邦线连起来,我真的哭死,甚至在这里我根本没必要买这个32开发板,只需要用外设就行了,我的乖乖,现在才明白,好像只需要处理好电源,就可以连接了。
在这里插入图片描述
因为外面有排针,这样的话,我能在一定程度上控制。

问题

1、就是复用功能,比如B4如何用作普通IO口。

总结

本节课主要是学习了如和配置时钟,配置引脚当然可以一下子选中多个引脚,进而还有生成的延迟函数,完成了点灯和流水灯,不解的是如何把有功能的配置成普通IO口。还有生成的延迟函数。


文章转载自:

http://aNwSPEz4.rfghr.cn
http://7vLzOQhd.rfghr.cn
http://KPDWTAIJ.rfghr.cn
http://X2xhMBLJ.rfghr.cn
http://6zbv4DN6.rfghr.cn
http://xW33NUzI.rfghr.cn
http://dCYaOjcU.rfghr.cn
http://FjT8pOLm.rfghr.cn
http://N8JvyxSO.rfghr.cn
http://iN4Us0dO.rfghr.cn
http://xT75YjoS.rfghr.cn
http://DMcKSs2W.rfghr.cn
http://mxjFqTG8.rfghr.cn
http://jD1p9wIF.rfghr.cn
http://tldNOHpu.rfghr.cn
http://q1cTeqd0.rfghr.cn
http://sH3L3Byc.rfghr.cn
http://ARwyKkaD.rfghr.cn
http://Jr8iWZPp.rfghr.cn
http://FcFlzfuH.rfghr.cn
http://OEWce0yl.rfghr.cn
http://6WpAdQoo.rfghr.cn
http://BFICkOrO.rfghr.cn
http://43TGY7W8.rfghr.cn
http://4wHk33ks.rfghr.cn
http://YMmcqGkE.rfghr.cn
http://Ogy7d1vA.rfghr.cn
http://xLPxpxVx.rfghr.cn
http://LAvKH71h.rfghr.cn
http://3HDgybqa.rfghr.cn
http://www.dtcms.com/wzjs/756931.html

相关文章:

  • 南昌网站建设公司网站建设公司哪家好营销活动网站
  • 荆州松滋网站建设自媒体怎么入门
  • 网站图片怎么做优化定制小程序制作一个需要多少钱
  • 网站域名管理怎么登陆深圳汇网网站建设
  • 免费网站服务器安全软件下载网页设计导航条怎么做
  • 四川网站建设套餐网站推广的基本方法是
  • 网站首页包含的内容eclipse视频网站开发
  • 天博网站建设网站的背景图怎么做
  • 特色设计网站推荐上海诚杰华建设工程咨询有限公司网站
  • 深圳微商城网站设计多少钱云梦网络建站
  • 太原网站建设开发公司全球最新数据消息
  • 知名门户网站go语言可以做网站吗
  • 微网站建设找哪家公司好不同网站建设特点
  • wordpress widget logicwordpress论坛优化
  • 网页制作与网站建设试题和答案wordpress保存帖子数据库
  • 天津做网站哪家好国际网站怎么建设
  • 吴桥网站外贸网站如何选择域名
  • 学校网站建设措施网站页面吸引力
  • 会ps的如何做网站阿里云网站建设方案书是什么
  • 移动网站建设模板view主题WordPress
  • 哈尔滨 门户网站个人运营app需要多少钱
  • 微博分享的网站怎么做网络营销专业技能
  • 辽宁朝阳网站建设创建一个自己的网站
  • 老外做的汉语网站中国建盏大师排名2021
  • crm营销管理系统合肥seo推广培训班
  • 义乌网站建设微信开发广州网站优化工具服务
  • 南宁住房建设部网站福建宏盛建设集团网站
  • seo公司彼亿营销唐山seo排名
  • 做企业网站哪家好电子商城商务平台
  • 网站开发主管岗位职责说明书怎么在网站上打广告