ARM实训报告汇总Word文件下载.docx

上传人:b****1 文档编号:15004732 上传时间:2022-10-26 格式:DOCX 页数:15 大小:828.97KB
下载 相关 举报
ARM实训报告汇总Word文件下载.docx_第1页
第1页 / 共15页
ARM实训报告汇总Word文件下载.docx_第2页
第2页 / 共15页
ARM实训报告汇总Word文件下载.docx_第3页
第3页 / 共15页
ARM实训报告汇总Word文件下载.docx_第4页
第4页 / 共15页
ARM实训报告汇总Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

ARM实训报告汇总Word文件下载.docx

《ARM实训报告汇总Word文件下载.docx》由会员分享,可在线阅读,更多相关《ARM实训报告汇总Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

ARM实训报告汇总Word文件下载.docx

图2

其中PWR是系统电源指示灯,为蓝色。

LED0和LED1分别接在PA8和PD2上,PA8还可以通过TIM1的通道1的PWM输出来控制DS0的亮度。

为了方便大家判断,我们选择了DS0为红色,DS1为绿色的LED灯。

3、按键

图3

KEY0、KEY1和KEY2用作普通按键输入,分别连接在PA13、PA15和PA14上。

WK_UP按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。

4、EEPROM

ALIENTEKMiniSTM32自带了24C02的EEPROM芯片,该芯片的容量为2Kbit,也就是256个字节。

图4

这里我们把A0~A2均接地,对24C02来说也就是把地址位设置成了0了。

5、SPIFLASH

ALIENTEKMiniSTM32开发板载有SPIFLASH芯片W25X16,该芯片的容量为2M字节。

图5

6、温度传感器

图6

7、2.8寸液晶连接示意图

图7

8、红外接收头示意图

REMOTE_IN接到P2的第二脚,也没有直接接在MCU的IO口上,目的也是防止IO口在做其他功能使用的时候,收到红外信号的干扰。

图8

8、USB采用PL_2303芯片,为28引脚的SSOP封装。

如图9.

图9

 

实训二:

跑马灯与按键输入

一、实训目的

1.掌握STM32项目开发流程;

2.学会画出算法流程图;

3.掌握按键、LED的控制编程;

二、实训内容

1、实现LED0和LED1交替闪烁,间隔300ms.

三、实训要求

1、用C语言实现算法;

2、建立工程项目,生成目标文件;

3、将目标文件编程下载到开发板,观察结果是否满足设计要求;

四、硬件设计

该实验的硬件电路在ALIENTEMMiniSTM32开发板上默认是已经连接好了的。

DS0接PA8,DS1接PD2。

所以在硬件上不需要动任何东西。

其连接原理图如下:

五、软件程序

#include<

stm32f10x_map.h>

stm32f10x_nvic.h>

#include"

led.h"

voidLED_Init(void)//该函数的功能就是用来实现配置PA8和PD2为推挽输出,在配置STM32外设的时候,任何时候都要先使能该外设时钟

{

RCC->

APB2ENR|=1<

<

2;

//使能PORTA时钟,APB2ENR是APB2总线上的外设时钟使能寄存器

5;

//使能PORTD时钟//端口时钟的配置A和D看一下寄存器APB2ENR各位的含义

GPIOA->

CRH&

=0XFFFFFFF0;

CRH|=0X00000003;

//PA8推挽输出

ODR|=1<

8;

//PA8输出高

GPIOD->

CRL&

=0XFFFFF0FF;

CRL|=0X00000300;

//PD.2推挽输出

//PD.2输出高

}

该代码里面就包含了一个函数voidLED_Init(void),该函数的功能就是用来实现配置,PA8和PD2为推挽输出。

在配置STM32外设的时候,任何都要先使能该钟!

APB2ENR是APB2总线上的外设时钟使能寄存器。

sys.h"

usart.h"

delay.h"

intmain(void)

{

Stm32_Clock_Init(9);

//系统时钟设置

delay_init(72);

//延时初始化

LED_Init();

//初始化与LED连接的硬件接口

while

(1)

{

LED0=0;

LED1=1;

//代表灯灭

delay_ms(300);

LED0=1;

LED1=0;

}

代码先包含了"

这句,使得LED0、LED1、LED_Init等能在main函数里被调用。

接下来,main函数先配置系统时钟为72M,然后把延时函数初始化一下。

接着就是调用LED_Iint来初始化PA8和PD2为输出。

最后在死循环里面实现LED0和LED1交替闪烁,间隔300ms.

实训三:

串口实验

一、实验目的

1.掌握STM32项目开发流程;

2.学会画出算法流程图;

3.掌握串口的控制编程;

二、实验内容

1.用串口助手通过USART1向STM32F103发送“A”,STM32F103收到后发送回来信息“hello!

”。

三、实训要求

1.用C语言实现算法;

2.建立工程项目,生成目标文件;

3.将目标文件编程下载到开发板,观察结果是否满足设计要求;

四、硬件设计

五、软件设计

struct__FILE

{

inthandle;

};

/*FILEistypedef’dinstdio.h.*/

FILE__stdout;

_sys_exit(intx)

x=x;

}

intfputc(intch,FILE*f)

while((USART1->

SR&

0X40)==0);

//循环发送,直到发送完毕

USART1->

DR=(u8)ch;

returnch;

#endif

#ifdefEN_USART1_RX//如果使能了接收

u8USART_RX_BUF[64];

//接收缓冲,最大64个字节.

u8USART_RX_STA=0;

//接收状态标记

voidUSART1_IRQHandler(void)

u8res;

if(USART1->

(1<

5))//接收到数据

res=USART1->

DR;

if((USART_RX_STA&

0x80)==0)//接收未完成

{

if(USART_RX_STA&

0x40)//接收到了0x0d

{

if(res!

=0x0a)USART_RX_STA=0;

//接收错误,重新开始

elseUSART_RX_STA|=0x80;

//接收完成了

}else//还没收到0X0D

{

if(res==0x0d)USART_RX_STA|=0x40;

else

{

USART_RX_BUF[USART_RX_STA&

0X3F]=res;

USART_RX_STA++;

if(USART_RX_STA>

63)USART_RX_STA=0;

}

}

}

}

#endif

voiduart_init(u32pclk2,u32bound)

{

floattemp;

u16mantissa;

u16fraction;

temp=(float)(pclk2*1000000)/(bound*16);

//得到USARTDIV

mantissa=temp;

//得到整数部分

fraction=(temp-mantissa)*16;

//得到小数部分

mantissa<

=4;

mantissa+=fraction;

RCC->

//使能PORTA口时钟

14;

//使能串口时钟

GPIOA->

=0XFFFFF00F;

CRH|=0X000008B0;

//IO状态设置

APB2RSTR|=1<

//复位串口1

APB2RSTR&

=~(1<

14);

//停止复位

BRR=mantissa;

//波特率设置

CR1|=0X200C;

//1位停止,无校验位.

#ifdefEN_USART1_RX//如果使能了接收

CR1|=1<

//PE中断使能

//接收缓冲区非空中断使能

MY_NVIC_Init(3,3,USART1_IRQChannel,2);

//组2,最低优先级

#endif

实训四:

外部中断实验

1.掌握STM32项目开发流程;

3.掌握外部按键中断、LED的控制编程;

1.按键KEY0,在中断程序中控制LED0亮;

2.按键KEY1,在中断程序中控制LED0熄灭;

五、软件设计

exti.h"

key.h"

//外部中断0服务程序

voidEXTI0_IRQHandler(void)

delay_ms(10);

//消抖

if(KEY2==1)//按键2

{

LED0=!

LED0;

LED1=!

LED1;

}

EXTI->

PR=1<

0;

//清除LINE0上的中断标志位

//外部中断15~10服务程序

voidEXTI15_10_IRQHandler(void)

{

//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1