stm32 c语言程序例题,第五章STM32F103处理器内部资源C编程与实例.doc

第五章STM32F103处理器内部资源C编程与实例

可编程控制器应用技术与设计实例

第2章 可编程控制器的硬件结构

· PAGE 94·

· PAGE 93·

第五章 STM32F103 处理器内部资源C编程与实例

5.1 I/O控制模块C编程与实例

5.1.1 实例内容与目标

● 熟悉STM32F103 处理器 I/O编程方法;

● 通过实验掌握STM32F103 处理器 I/O口控制LED显示的方法;

● 学习LED驱动原理。

5.1.2

(1)STM32F103 处理器 I/O口控制工作原理

STM32F103 处理器有A~E五组输入输出端口,每组端口都拥有自己的两个32bit寄存器(GPIOx_CRL,GPIOx_CRH)、2个32bit数据寄存器(GPIOx_IDR,GPIOx_ODR)、一个32bit set/reset寄存器(GPIOx_BSRR)、一个16bit reset寄存器(GPIOx_BRR)和一个32bit 锁定寄存器(GPIOx_LCKR)。

每组端口都有复用的功能,例如作为输入口或输出口,还可以定义为中断触发功能,我们可以通过软件配置寄存器来满足不同系统和设计的需要。在运行主程序之前,必须先对每一个用到的引脚的功能进行设置。如果某些引脚的复用功能没有使用,那么可以先将该引脚设置为I/O 口。

由于I/O 口的配置过程都完全类似,因此接下来主要以GPIO E 口作为对象来进行讲解。

● 端口配置低寄存器

表5.1显示了该寄存器的定义。

表5.1 端口配置低寄存器定义

比特位

定义

Bits:31:30,27:26,23:22,19:18,15:14,11:10,7:6,3:2

软件可写位,配置相应的I/O端口。

输入模式(mode[1:0]=00):

00:模拟输入模式

01:浮点输入

10:输入上拉/下拉

11:保留位

输出模式(mode[1:0]> 00):

00:通用功能输出上拉

01:通用功能输出Open-drain

10:转换功能输出上拉

11:转换功能输出Open-drain

Bits29:28,25:24,21:20,17:16,13:12,9:8,5:4,1:0

软件可写位,配置相应的I/O端口。

00:输入模式

01:输出模式,最大速率10MHz

10:输出模式,最大速率2MHz

11:输出模式,最大速率50MHz

● 端口配置高寄存器

表5.2显示了该寄存器的定义。

表5.2 端口配置高寄存器定义

比特位

定义

Bits:31:30,27:26,23:22,19:18,15:14,11:10,7:6,3:2

软件可写位,配置相应的I/O端口。

00:模拟输入模式

01:浮点输入

10:输入上拉/下拉

11:保留位

Bits29:28,25:24,21:20,17:16,13:12,9:8,5:4,1:0

软件可写位,配置相应的I/O端口。

输入模式(mode[1:0]=00):

00:模拟输入模式

01:浮点输入

10:输入上拉/下拉

11:保留位

输出模式(mode[1:0]> 00):

00:通用功能输出上拉

01:通用功能输出Open-drain

10:转换功能输出上拉

11:转换功能输出Open-drain

● 端口输入数据寄存器

GPIO端口数据可以通过该寄存器读入。表5.3显示了数据寄存器的定义。

表5.3 端口输入寄存器定义

Bits31:16

保留位,读出数据为0

Bits:15:0

IDRx[15:0]:端口输入数据(x=0….15)

该寄存器为只读寄存器并且只能在字模式下访问;读出数据为相应I/O端口的输入值。

● 端口输出数据寄存器

地址偏移量:0Ch;初始值

GPIO端口数据可以通过该寄存器读入。表5.4显示了数据寄存器的定义。

表5.4 端口输入寄存器定义

Bits31:16

保留位,读出数据为0

Bits:15:0

IDRx[15:0]:端口输入数据(x=0….15)

该寄存器为可读可写寄存器,只能在字模式下访问。

注意:该寄存器允许原子操作(设置/重启),每一位允许单独操作。通过对GPIOx_BSRR寄存器的操作,可以设置或重启任一比特位。

● 比特位设置/重启寄存器GPIOx_BSRR

地址偏移量:10h;初始化值。

表5.5显示了比特位设置/重启寄存器的定义。

表5.5 比特位设置/重启寄存器定义

Bits31:16

BRx:reset bit x(x=1…15)

该寄存器为只写寄存器而且仅能在字模式下访问。

0:对相应ODRx位不做任何操作;

1:重启ODRx相应位。

注意:如果同时设置了BSx和BRx,BSx具有较高优先级。

Bits:15:0

BSx:相应的x位置位(x=1…15)

该寄存器为只写寄存器而且仅能在字模式下访问。

0:对相应ODRx位不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值