|
这个网站上有许多关于LM3S811的资料呢,简单易懂,自己找一点看看
//*****************************************************
// PA口和PD口测试
// 注意:PC0-PC3能不用则不用 防止锁死芯片
//*****************************************************
/****************引用文件*****************************/
#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
/****************宏定义LED控制引脚********************/
#define LED_PERIPAH SYSCTL_PERIPH_GPIOA
#define LED_PERIPBH SYSCTL_PERIPH_GPIOB
//#define LED_PERIPCH SYSCTL_PERIPH_GPIOC
#define LED_PERIPDH SYSCTL_PERIPH_GPIOD
/**************** 如无外部按键设计,可省略**************/
// 定义KEY
#define KEY_PERIPH SYSCTL_PERIPH_GPIOC
#define KEY_PORT GPIO_PORTC_BASE
#define KEY_PIN GPIO_PIN_4
// 防止JTAG失效
void JtagWait(void)
{
SysCtlPeripheralEnable(KEY_PERIPH); // 使能KEY所在的GPIO端口 (GPIO C)
GPIOPinTypeGPIOInput(KEY_PORT, KEY_PIN); // 设置KEY所在管脚为输入
if (GPIOPinRead(KEY_PORT, KEY_PIN) == 0x00) // 若复位时按下KEY,则进入
{
while(1); // 死循环,以等待JTAG连接
}
GPIOPinIntDisable(KEY_PERIPH,KEY_PIN); // 禁止KEY所在的GPIO端口中断
}
int main(void)
{
JtagWait(); // 防止JTAG失效,,建议习惯加上
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);
//SysCtlClockSet函数()系统时钟设置 采用主振荡器 外接6MHz晶振 不分频
SysCtlPeripheralEnable(LED_PERIPAH);
SysCtlPeripheralEnable(LED_PERIPDH);
//GPIO输出型的 设置所选GPIO 端口指定的管脚为推挽输出模式
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, 0xff);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, 0xff);
while(1)
{
GPIOPinWrite(GPIO_PORTA_BASE,0xff,0);
GPIOPinWrite(GPIO_PORTD_BASE,0xff,0);
SysCtlDelay(150* (SysCtlClockGet( )/ 3000)); // 延时约150ms
GPIOPinWrite(GPIO_PORTA_BASE,0xff,0xff);
GPIOPinWrite(GPIO_PORTD_BASE,0xff,0xff);
SysCtlDelay(150* (SysCtlClockGet( )/ 3000)); // 延时约150ms
}
} |
|