单片机第一次实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cortex-M4原理与实践实验报告
实验一 GPIO 接口实验
一.实验目的
1. 掌握 Code Composer Studio 6.0(以下简称 CCS)的安装和配置步骤过程。
2. 了解 Cortex-M4 开发系统和计算机与目标系统的连接方法。
3. 了解 CCS 软件的操作环境和基本功能,了解 TM4C1294 软件开发过程。
1) 学习创建工程和管理工程的方法;
2) 了解基本的编译和调试功能;
3) 学会设置断点,注入和提取数据文件;
4) 学习使用观察窗口;
5) 了解图形功能的使用方法。
二.实验程序流程图
本实验通过多种方法来控制 GPIO 端口的读写,通过 GPIO 端口的读写来控制主板上两个独立的 LED 灯,D1、D2 的点亮和熄灭。主板上 D1、D2 、D3 对应的 GPIO 口分别为 PF1、 PF2、PF3。
三.实验代码、注释及现象
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
int main(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //使能 GPIOF 口
GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_DIR_MODE_OUT); //设置为输出模式
GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_STRENGTH_8MA_SC,GPIO_PIN_TYPE_STD);
//进一步设置为 8mA、带转换速率控制的推挽输出
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1, 0xff);//PF1 输出高电平
while(1)
{}; //LED_D1 on 简单LE
}
现象:LED1 被点亮
四.思考题
1.代码
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
int main(void)
{
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 10000000); //设置系统时间为10MHZ
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);//使能 GPIOF 口
GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_DIR_MODE_OUT); //设置为输出模式
GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_STRENGTH_8MA_SC,GPIO _PIN_TYPE_STD); //进一步设置为 8mA、带转换速率控制的推挽输出
while(1)
{
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0xff); //PF1输出高,点亮LED0
SysCtlDelay(100*(10000000/3000)); //延时n*1ms 100ms
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0); //PF1输出低,关闭LED0
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0xff); //PF2输出高,点亮LED2
SysCtlDelay(100*(10000000/3000)); //延时n*1ms
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0); //PF2输出低,点亮LED2
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0xff);//PF2输出高,点亮LED2
SysCtlDelay(100*(10000000/3000)); //延时n*1ms
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0);//PF2输出低,点亮LED2
};
}
2.实验现象:主板上LED0,LED1,LED2按照间隔时间顺序依次点亮
实验原理解读:主要利用延迟函数,按顺序点亮和关断LED1,LED2,LED3。
五.实验中遇到的问题及其解决方法
首先是没有按默认路径安装,然后配置一直不对,缺少文件,后来把软件卸载之后再重新安装在默认路径,问题就解决了。