@floatsd
2015-12-29T14:31:47.000000Z
字数 4470
阅读 1483
CM4实验报告
- 把CCS安装好,熟悉CCS操作,编译界面
- 创建工程,开始学习TM4C1294软件开发过程
- 了解GPIO的概念,学会查找端口功能,调用GPIO库函数让LED跑起来
/*******************************************************************
* 函数: Clock_Init()
* 描述: 配置使能系统时钟
* 输入值:无
* 返回值:无
*****************************************************************/
void Clock_Init(){
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |//外部时钟25MHz
SYSCTL_OSC_MAIN |//OSC时钟源选择主振荡器作为OSC
SYSCTL_USE_PLL |//采用锁相环PLL作为系统时钟源
SYSCTL_CFG_VCO_480), //压控振荡器频率480MHz
sysClock_Fr);//设定系统频率为sysClock_Fr
}
uint32_t SysCtlClockFreqSet(uint32_t ui32Config,
uint32_t ui32SysClock);
这里ui32Config
表示时钟配置,例如外部时钟,是否使用PLL,时钟源设置等,它的其他可选项如下图: 信号 | 端口 | 信号 | 端口 |
---|---|---|---|
LED0 | PF1 | LED1 | PF2 |
LED2 | PF3 | LED3 | PL0 |
LED4 | PL1 | LED5 | PL2 |
LED6 | PL3 | LED7 | PL4 |
/*******************************************************************
* 函数: LED_Init()
* 描述: LED的配置及初始化
* 输入值:无
* 返回值:无
*****************************************************************/
void LED_Init()
{
//使能GPIOF和GPIOL模块
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL);
//将8盏LED配置为输出模式(GPIO管脚方向)
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,
GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
GPIOPinTypeGPIOOutput(GPIO_PORTL_BASE,
GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4);
}
/*******************************************************************
* 函数: LED_ON(uint8_t NumLED)
* 描述: 点亮某一盏LED灯
* 输入值:uint8_t NumLED
* 返回值:无
*****************************************************************/
void LED_ON(uint8_t NumLED){
switch(NumLED){
case 0: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_PIN_1);break;
case 1: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_PIN_2);break;
case 2: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3);break;
case 3: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_0,GPIO_PIN_0);break;
case 4:GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_1,GPIO_PIN_1);break;
case 5: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_2,GPIO_PIN_2);break;
case 6: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_3,GPIO_PIN_3);break;
case 7: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_4,GPIO_PIN_4);break;
default: ledclose();break; //让所有灯灭的一个函数
}}
/*******************************************************************
* 函数: LED_OFF(uint8_t NumLED)
* 描述: 不亮某一盏LED灯
* 输入值:uint8_t NumLED
* 返回值:无
*****************************************************************/
void LED_OFF(uint8_t NumLED){
switch(NumLED){
case 0: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0x00);break;
case 1: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0x00);break;
case 2: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0x00);break;
case 3: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_0,0x00);break;
case 4: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_1,0x00);break;
case 5: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_2,0x00);break;
case 6: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_3,0x00);break;
case 7: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_4,0x00);break;
default: ledclose();break; //让所有等灭的一个函数
}}
/*******************************************************************
* 函数: Delay(uint32_t CountMs)
* 描述: 延时
* 输入值: uint32_t CountMs
* 返回值: 无
*****************************************************************/
void Delay(uint32_t CountMs){
SysCtlDelay(CountMs*sysClock_Fr/3000);
}
void GPIOPin Type ADC (uint32_t ui32Port, uint8_t ui8Pins)
void GPIOPin Type CAN (uint32_t ui32Port, uint8_t ui8Pins)
void GPIOPin Type CIR (uint32_t ui32Port, uint8_t ui8Pins)
void GPIOPin Type Comparator
void GPIOPin Type EPI
void GPIOPin Type Ethernet LED
void GPIOPin Type Ethernet MII
void GPIOPin Type GPIOInput
void GPIOPin Type GPIOOutput