5月18号收到的板子,一直以来没有时间弄,现在弄好了串口,LED灯和AD,接下来的1602和12864也弄好了,先上三期日记,希望各位能够顶下。今天匆忙完成的,比较简陋,大家别见笑。
拿到板子,首先看下芯片资源和引脚,如下
===============================================================================
IO口:
=====
PA--------------PA0, PA1, PA2, PA3, PA4, PA5
第二功能 U0Rx U0Tx SSICL SSIFss SSIR SSIT
================================================================================
PB--------------PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7
第二功能 PWM2 PWM3 I2CCLK I2CDAT C0- CPP5 C0+ TRST
=================================================================================
PC--------------PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7
第二功能 TCK TMS TD1 TD0 CPP1 CPP3 CPP4
SWCLK SWDIO
=================================================================================
PD--------------PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7
第二功能 PWM0 PMW1 U1Rx U1Tx CCP0 CCP2 C0o
================================================================================
PE--------------PE0, PE1,
第二功能 PWM4 PMW5
=================================================================================
VDD 四个 外接晶振OSC0
RST LDO
GND 四个 外接晶振OSC1
流水灯代码
#include<lm3sxxx.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
ulong Sysclk = 12000000UL;
extern void jtagWait(void); // 防止JTAG失效
extern void clockInit(void); // 系统时钟初始化
int main(void)
{
jtagWait();
clockInit();
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC | SYSCTL_PERIPH_GPIOB | SYSCTL_PERIPH_GPIOE | SYSCTL_PERIPH_GPIOD); // 使能KEY所在的GPIO端口
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_0 | GPIO_PIN_1); // 设置KEY所在管脚为输入
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,GPIO_PIN_0 | GPIO_PIN_1); // 设置KEY所在管脚为输入
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,GPIO_PIN_0 | GPIO_PIN_1); // 设置KEY所在管脚为输入
GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,GPIO_PIN_5); // 设置KEY所在管脚为输入
GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_0 | GPIO_PIN_1,0x00);
GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0 | GPIO_PIN_1,0x00);
GPIOPinWrite(GPIO_PORTE_BASE,GPIO_PIN_0 | GPIO_PIN_1,0x00);
while(1)
{
GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0xff);
SysCtlDelay(150* (Sysclk / 3000)); // 延时约150ms
GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0x00);
SysCtlDelay(850* (Sysclk / 3000)); // 延时约850ms
}
}
// 防止JTAG失效
void jtagWait(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); // 使能KEY所在的GPIO端口
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE,GPIO_PIN_4); // 设置KEY所在管脚为输入
if (GPIOPinRead(GPIO_PORTC_BASE,GPIO_PIN_4) == 0x00) // 若复位时按下KEY,则进入
{
while(1); // 死循环,以等待JTAG连接
}
SysCtlPeripheralDisable(SYSCTL_PERIPH_GPIOC); // 禁止KEY所在的GPIO端口
}
void clockInit(void)
{
SysCtlLDOSet(SYSCTL_LDO_2_75V);
SysCtlClockSet(SYSCTL_XTAL_6MHZ | SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN ); // The crystal is 20MHz
Sysclk=SysCtlClockGet();
}