底层单片机学习

1.点亮led灯

将led灯初始化对应的gpio引脚上,再使用使用gpio拉高或者降低引脚点亮led灯

2.灯闪烁

采用在引脚拉高降低的同时可以采用delay函数产生延迟

/*这里的时间由时钟判断分为内部或者外部时钟,如果想要变化的时候要使用clk函数对于时钟进行分频,从而能够对函数的产生更精确延迟)

3.按键的查询和中断

首先将对应得按键初始化到相应的gpio口上,相当于将led初始化到对应的引脚,查询是使用gpio-readinputpin来判断引脚的高低电平从而拉升或降低电压,而中断是初始化中断引脚,当下降沿出发时候则对引脚进行拉升或降低(注意中断需要配置使能)。区别在于查询需要一直占用cpu而中断只有必要的时候才产生。

4.UART串口通信

串口是计算机上一中通用设备通信的协议,类似于RS-232口。串口通信有三条线:地线,发送线和接受线,串口通信最重要的参数是波特率,数据位,停止位,奇偶校验。首先对uart串口进行初始化配置,具体有波特率,传输方式等(注意需要配置使能)。使用uart-send函数可以发送数据,uart-receive函数可以接受数据,uart-getflagstatus可以通过判断引脚状态来判断是否进行收发数据。

(中断的概念,cpu不再采用轮询的方式进行检测,而是只有当检测到信号发生变化时,判断型号类型从而做出调整的操作)

5.beep蜂鸣器

首先进行蜂鸣器的初始化(包含时钟初始化,时钟使能,初始化beef频率,使能beef)

然后直接while循环即可

6.定时器精确定时

延迟函数(初始化,预分频,设计计数模式,配置使能)

/*单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件*/

以前的delay函数通过函数的操作以及时钟的分频来达到,函数的每一次操作使得基于系统时钟所产生延迟的效果,而定时器则是使用中断的概念来完成延迟注意定时器是通过硬件实现延迟,即检测信号跳转到定时器开始工作倒计时,等到计时完成则再回主程序

7.定时器输出捕获

/*用于测量输出信号的周期或者占空比*/

被测信号的一个边沿到临时,启用定时器计时,直到下一个相同的边沿信号到的时候读取定时器的值,从而测出被测信号的周期和频率。

8.定时器输出PWM

一般通过占空比来获得不同的稳定电压,从而来调节led灯的亮度或者beef蜂鸣器。

利用的也就是定时器来控制输出信号的时间来达到占空比的不同

9.看门狗

通过定时器使得其到达一定的时间后需要软件对其进行清o也就是俗称的喂狗,如果到一定时间没喂,看门狗就会让程序自动复位,防止在无人干扰的情况下出现不可知的情况。

10.ADC

用于将连续的模拟信号转化成离散的数字信号(类似读取温度之类的信号都需要使用模拟信号)

 11.I2C

设备根据地址互相传输数据的多主机模式,串行数据线SDA,串行时钟线SCL。

通过串行数据线,时钟线的信号从而判断信号的开始结束

开始信号:SCL处于高电平,SDA由高电平转为低电平,产生开始信号

停止信号:SCL处于高电平,SDA由低电平1跳转到高电平

应答信号:接受数据的IC在接收到八位数据后会向主设备发送出一个特定的低电平表示数据已经接受

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值