[原创] 梦之旅同学LM3S811系列学习笔记之GPIO

梦之旅   2011-5-23 22:08 楼主

  5月18号收到的板子,一直以来没有时间弄,现在弄好了串口,LED灯和AD,接下来的1602和12864也弄好了,先上三期日记,希望各位能够顶下。今天匆忙完成的,比较简陋,大家别见笑。

  拿到板子,首先看下芯片资源和引脚,如下

LQBJ7)IJGJ8E[Q8PJQ4Y%T7.jpg

LQBJ7)IJGJ8E[Q8PJQ4Y%T7.jpg

LQBJ7)IJGJ8E[Q8PJQ4Y%T7.jpg

===============================================================================

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();
}
 

 

人生苦短,何必为声名所累,放开自己心态,去追求自己想要的梦想去吧!http://pytech-inc.taobao.com/

回复评论 (11)

过来顶!
点赞  2011-5-23 22:31

不错顶你一下

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-5-24 06:54
楼主学习目的性很强佩服,顶顶。条理清晰哈哈哈
点赞  2011-5-24 14:03
支持 学习中 条理清晰的 我也来试试
点赞  2011-5-24 15:48
顶一下。。。斑竹 辛苦。学习了。。。
点赞  2011-5-24 18:55

回复 5楼 常见泽1 的帖子

多尝试,呵呵,你加上防止jtag失效的代码后就可以随便下载了,程序是调出来的,欢迎多交流。
人生苦短,何必为声名所累,放开自己心态,去追求自己想要的梦想去吧!http://pytech-inc.taobao.com/
点赞  2011-5-24 21:38
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_0 | GPIO_PIN_1);     //  设置KEY所在管脚为输入

这句应是输出吧???
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-5-26 09:03

回复 8楼 ddllxxrr 的帖子

恩,那部分注释不对
人生苦短,何必为声名所累,放开自己心态,去追求自己想要的梦想去吧!http://pytech-inc.taobao.com/
点赞  2011-5-26 12:39

回复 楼主 梦之旅 的帖子

请问LZ   PB4、PB6的第二功能是什么,谢谢
点赞  2011-7-4 11:06
楼主能把12864的贴上来看看吗?
现在急着用啊
点赞  2011-7-12 10:51
顶上去
态度决定一切,努力成就未来。
点赞  2014-7-19 20:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复