单片机课程实验指导书(5)

2019-04-14 17:42

点击NEXT,开始ISP下载程序。下载结束后点击Finish完成下载

断电并拔下BOOT0的短接帽。重新上电即可运行下载的程序。

3.4.2 J-link下载说明

安装JLink ARM_V400a程序将JLINK的连接线的凸起对准盘古UE-STM32F103开发板上的JTAG插座(1XS11)的凹进部分插好,运行安装好的“J-Flash ARM V4.00a”

点击“OPTIONS”下的“Project settings”

点击CPU,如图选择芯片型号,然后点击确定返回到主菜单环境:

点击File下的Open菜单键,选择需要烧写的合适的文件路径后,如图

点击Target下的Connect,如果JLINK与开发板连接正确,在底部的窗口将会显示Connected successfully;

点击Target下的Erase Chip,删除芯片的程序空间,成功后将提示相关信息;

点击Target下的Auto,自动将需要烧写的程序写入到芯片内,成功后将提示相关信息。中间如有提示信心,直接选择是。

断电并拔下JLINK连接线。重新上电即可运行下载的程序。

四、GPIO控制实验 一、实验目的

实现开发板上的LED等按照一定规律“亮、灭”,掌握STM32基本GPIO口的使用。

二、硬件原理

实现跑马灯仅需要对STM32的GPIO进行配置与读写。GPIO是STM32最常用的设备

之一,STM32可以提供多达80个双向GPIO口,它们分别分布在A~E等5个端口中。每个端口有16个引脚,每个引脚可以承受最大为5V的压降。

STM32的每个I/O端口都由7个寄存器控制,分别是: 2个32位端口配置寄存器GPIOx_CRL和GPIOx_CRH;2个32位的数据寄存器GPIOx_IDR和GPIOx_ODR;1个32位的置位/复位寄存器GPIOx_BSRR;1个16位的复位寄存器GPIOx_BRR;1个32位的锁存寄存器GPIOx_LCKR。

1) 端口配置寄存器

STM32端口由端口配置寄存器进行配置,由于每个端口有16个I/O口(即引脚),而每个I/O口需要4位配置,因此每个端口需要64位配置,这也是每个端口有2个32位端口配置寄存器的原因。如A端口配置寄存器GPIOA_CRL与GPIOA_CRH,其中GPIOA_CRL配置低8位I/O口,GPIOA_CRH配置高8位I/O口,图中是GPIO_CRL寄存器。

31 30CNF7[1:0]rw rw15 14CNF3[1:0]rw rw29 28MODE7[1:0]rw rw13 12MODE3[1:0]rw rw27 26CNF6[1:0]rw rw11 10CNF2[1:0]rw rw25 24MODE6[1:0]rw rw 9 8MODE2[1:0]rw rw23 22CNF5[1:0]rw rw 7 6CNF1[1:0]rw rw21 20MODE5[1:0]rw rw5 4MODE1[1:0]rw rw19 18CNF4[1:0]rw rw 3 2CNF0[1:0]rw rw17 16MODE4[1:0]rw rw1 0MODE0[1:0]rw rw

每个I/O口可以由软件配置成8种模式:输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能、开漏复用功能,以后根据不同的功能配置不同的模式。

表3.1 STM32的I/O口位配置表

配置模式 通用输出 复用功能输出 推挽式(Push-Pull) 开漏(Open-Drain) 推挽式(Push-Pull) 开漏(Open-Drain) 模拟输入 输入 输入浮空 输入下拉 输入上拉

表3.2 STM32输出模式配置表 MODE[1:0] 含义 CNF1 CNF0 0 0 1 0 1 0 1 0 00 MODE[1:0] 01 10 11 参见表 PxODR寄存器 0或1 0或1 任意 任意 任意 任意 0 1 1 0 1 00 01 10 11

保留 最大输出速率10MHz 最大输出速率2MHz 最大输出速率50MHz 在固件库开发中,操作寄存器CRH和CRL来配置I/O口的模式和速度是通过GPIO初

始化函数完成:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

这个函数有两个参数,第一个参数用来指定GPIO,取值范围GPIOA~GPIOG。第二个

参数为初始化参数结构体指针,结构体类型为GPIO_InitTypeDef,在此可以详细了解该结构体定义,该定义在stm32f10x_gpio.h中。

typedef struct {

uint16_t GPIO_Pin;

GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; } GPIO_InitTypeDef; 配置GPIO的代码如下:

GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

// 配置端口中引脚5

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 速度50MHz GPIO_Init(GPIOB, &GPIO_InitStrucure);

上述代码设置GPIOB的第5个端口为推挽输出模式,同时速度为50Mbit/s。 首

GPIOB是端口GPIOB的配置寄存器编址,该编址可以在 中查到。结构体GPIO_InitStructure的第一个成员变量GPIO_Pin实际指出了需要配置的引脚在GPIOB配置寄存器中的偏移量。成员变量GPIO_Mode用来设置引脚的输入输出模式,这是通过一个枚举类型定义:

typedef enum {

GPIO_Mode_AIN = 0x0;

GPIO_Mode_FLOATING = 0 }

2) 数据输入/输出寄存器


单片机课程实验指导书(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:货币时间价值在财务管理实践中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: