首页 >> 大全

8、stm32F103入门学习--点亮LED(寄存器操作)(向库函数操作迈进!)

2023-10-12 大全 27 作者:考证青年

有的型号引脚多,可以多达144!。所以进一步优化程序。思路:把跟引脚操作功能相关的函数专门放到“.h”和“.c”这两个函数里。有点像模块化编程,大家可以参考视频。

所以我们又要新建两个文件,放进文件夹即可。

再添加到keil工程中,这边添加有个小技巧。首先添加“.c”,方式跟添加“.h”一样,然后在“.c”编写如下程序。

编译一下,发现左侧出现了“.h”文件!

现在就是开始要在这两个新添加的文件中写程序。

我们对引脚的操作无非是控制输出、输入,输出的话控制输出高电平还是低电平。以LED为例的话,我们控制输出高低电平。那么可以将函数具体的实现方式在写“.c”文件中。

首先看两个寄存器,第一个BSRR,这个寄存器上节看到过,没用过。我们具体来看下,回顾下之前输出高低电平采用的是ODR寄存器,其实也可以采用BSRR。BSRR可分为高16位和低16位,在低16位中如果某个位设置为1,相当于ODR操作1;如果设置某个位为0,则忽视!在高16位中,如果某个位设置为1,相当于ODR操作0;如果设置某个位为0,则忽视!

对于BRR寄存器操作类似!具体看下图。

先看一个函数:

void GPIO_SetBits(GPIO_typeDef *GPIOx,uint16_t GPIO_Pin)
{GPIOx->BSRR |= GPIO_Pin;
}

这个函数需要填写两个参数,一个是GPIOx,一个是。从名字看出一个是确定引脚所在的组,一个是确定第几个引脚。以点亮我们的led为例PC13,则需要传进去的参数是GPIOC和(1

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了