STM32点亮LED寄存器版

寄存器点亮LED

在库函数盛行的今天,不知道有没有和我一样还在学习寄存器的小萌新呢?话不多说,直接开干!

1 首先我们需要知道,我们需要先了解GPIO到底是个什么东西?

通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。

2 在知道GPIO的意义后,就是对输入输出的设置。

在这里插入图片描述

GPIO共八种模式,不同的功能需要配置成不同的模式,具体每种模式具体的用处,这里就不多说,只看最常用的两个,而对于模式的配置,就要用到寄存器了。
在这里插入图片描述
另外,要使用GPIO控制某一组管脚时,必须先初始化。在寄存器层面的话需要对APB2寄存器的某一位进行置1操作,需要打开哪一组GPIO,置1即可。
在这里插入图片描述
APB2即APB2外设时钟使能寄存器(RCC_ APB2ENR)
例如想要打开GPIOA使能。只需要
**RCC->APB2ENR | = (1<<2)**使2位置1.

3 控制输入输出模式的寄存器。

在这里插入图片描述
在这里插入图片描述
八种模式 用到了两种寄存器 每一个端口都需要两个CNF和两个MODE,而每一组GPIO,都是16个口,也就对应使用32个CNF和32个MODE,然后将CNF与MODE放在一起,组成了CRL(H),高八位为CRH,底八位为CRL。可以通过调用直接赋值使用。
例如:GPIOA->CRL = 0x03 ,即最低为为0011,也就是CNF为00,MODE为11.意思就是GPIOA端口的PA.0引脚配置的模式为
开漏输出且最大输出速度为50MHz。以STM32F103为例
PB0即为LED,则可以由GPIOB->CRL = 0x03直接设置输出模式。

4 设置好模式以后,接下来就可以设置输出电平了。

对于输出来说,需要使用的是ODR寄存器,输入则是IDR寄存器。再次,我们仅看ODR:
在这里插入图片描述
很明显,**一组GPIO正好16个,对应了ODR0到ODR15。**把某一位置1即代表某一位输出高电平。对于它的16到31位为保留位,我们不需要去管。
对于PB0来说,我们可以这样控制它(LED外接高电平,需要输出一个低电平)
GPIOB->ODR =0x00;(此时实际上是改变了GPIOB所有的引脚
如果想只改变一位,那么就得用到BRR寄存器复位0。GPIOB->BRR =0x00)。
这样的话,LED就能亮起来了。

PS:没有具体代码,自己写才是硬道理。如果你只想看到LED亮起来,可以试试用导线把PB0引脚接地。不过这样没什么意义。

另外附上函数实现版
在这里插入图片描述
可以发现,对寄存器的操作在函数里都有体现。确实函数会更加方便,哈哈哈。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值