STM32入门学习笔记之GPIO输入输出实验(下)

发布时间:2023-08-28  

5.2.5 端口输出数据寄存器:GPIOx_ODR(x=A..E)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-














15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Bit 15~Bit 0:端口输出数据(这些位属于只读并只能以字的形式操作)

注:在输入模式下,ODR的数据可以控制端口内部是上拉还是下拉,写入1意味着端口上拉输入。


5.3 GPIO的输入与输出例程

我们现在在PA0端口接一个按键,PA端口接一个LED,当按下按键的时候,LED以100ms亮,100ms灭,抬起按键后LED常亮。

(1)在stm32f103x.h文件中添加GPIO的结构体和地址映射。

图片

图片

图片

(2)在HEADERWARE目录下创建GPIO文件夹,并创建gpio.c和gpio.h两个文件。

图片

(3)在gpio.h文件中输入以下内容:

图片

(4)在gpio.c文件中输入以下内容

图片

(5)将gpio.c文件和gpio.h文件添加进项目

图片

图片

(6)在1.c文件中输入以下内容:

图片

注:实验中,按键一端接GND,LED一端接VCC,所以按键是检测到0代表按下,端口输出低电平代表LED点亮。

5.4 CM3内核的位带操作

Cortex-M3内核中有一个非常有用的功能,叫做位带操作,支持了位带操作以后,可以使用普通的加载/存储指令来对单一的比特进行读写。在CM3中,有两个区中实现了位带。其中一个是SRAM区的最低1MB范围,第二个则是片内外设区的最低1MB范围。这两个区中的地址除了可以像普通的RAM一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个32位的字。当你通过位带别名区访问这些字时,就可以达到访问原始比特的目的。下图从另一个侧面演示比特的膨胀对应关系。

图片

欲设置地址0x20000000中的比特2,则使用位带操作的设置过程如下图所示。

图片

30年前其实就已经有位带操作的概念了,自8051单片机开始,到现在的CM3内核,位带操作有什么优越性呢?最容易想到的就是通过GPIO的管脚来单独控制每盏LED的点亮与熄灭。另一方面,也对操作串行接口器件提供了很大的方便(典型如74HC165,CD4094)。位带操作使代码更简洁,这只是位带操作优越性的初等体现,位带操作还有一个重要的好处是在务中,用于实现共享资源在任务间的“互锁”访问。多任务的共享资源必须满足一次只有一个任务访问它——亦即所谓的“原子操作”。

5.5 利用位带操作实现GPIO的输入与输出

现在利用位带操作来实现上一题目中的功能。

(1)在sys.h文件中添加实现位带操作的代码。

图片

(2)修改gpio.h中的代码如下图所示。

图片

(3)修改gpio.c中的代码如下图所示。

图片

(4)修改1.c中的代码如下图所示。

图片

5.6 外部中断的实现

关于STM32F103的中断机制在之前已经详细讲述过,现在利用外部中断来实现上一题目的功能。

(1)修改gpio.c中的代码如下图所示。

图片

(2)添加代码到文件stm32f103.h中。

图片

(3)修改1.c中的代码如下图所示。

图片


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>