我这个人一得瑟就得出事。唉,先说说出事的原因吧,上回我晒了我买回的SPI彩屏,我想驱动它。
但该屏的LED,就是背光一定要接3.3V的。我第一次用啊!还挺吊!没太在意,我直接把LED同5V的VCC连接起来了,呵呵,都在屏上,有近道不走走远道不成!!
当时我还是用CCS环境(现在用MDK,多谢坛友指正),我加了电,我看全屏发蓝,背光也亮,没有问题,我于是去看程序啦!!!这可了不得了!!!
我看了半天程序,觉得没有问题就往里下载,我进入DEBUG调试,来是蓝屏。我用手一摸,我地天啊!!!只见屏表面有一块烧变色,手都烫得很。我断了电
心想完了。我地屏还没用上一回合,就闭蛤了。
我断了电放到一边一天都没有好心情。我问了店家,店家给我答复是很难说。并告诉我如果LED接3.3V亮了就应没有问题,心想不如动用STC芯片检验一下是否坏了,因为STC有LE系列的单片机,且手头有STC家伙。第二天,我就连上了,一试好用唉!见图片:
那到LM4F120板子上怎么就不好了,我想到时序。于是动用了我最先进的终极武器-------示波器。我测出在STC下的波形,并记信其写周期为30US。
我想也许是因为LM4F120时序太快的原故吧。
当我又重新接上的时候,我多了个心眼,用万用表一一查下电压,当我查到一个管脚时觉得有异常,我很快换了个管脚,这时高低断点的电压正常。
但那个管脚为什么不正常,我想以后再解决,是个BUG也说不定。
我接上了LM4F120,这回用MDK,上电编译非常顺利。我全速运行,久违的彩条出来了。
这次我动用了我的全部测量家当。用了我两程单片机的板子,目的只是驱动一块小小的彩屏。不过我喜欢
下面是代码部分
1、管脚定义:
- #define cs_pin GPIO_PIN_4
- #define reset_pin GPIO_PIN_7
- #define rs_pin GPIO_PIN_5
- #define spi_pin GPIO_PIN_6
- #define sck_pin GPIO_PIN_4
- #define GPIO_O_DATA 0x00000000 // GPIO Data
- #define CS(V) HWREG(GPIO_PORTC_BASE+(GPIO_O_DATA+(cs_pin<<2)))=V?cs_pin:0
- #define REST(V) HWREG(GPIO_PORTC_BASE+(GPIO_O_DATA+(reset_pin<<2)))=V?reset_pin:0
- #define RS(V) HWREG(GPIO_PORTC_BASE+(GPIO_O_DATA+(rs_pin<<2)))=V?rs_pin:0
- #define SPI(V) HWREG(GPIO_PORTC_BASE+(GPIO_O_DATA+(spi_pin<<2)))=V?spi_pin:0
- #define SCK(V) HWREG(GPIO_PORTA_BASE+(GPIO_O_DATA+(sck_pin<<2)))=V?sck_pin:0
- #define uchar unsigned char
- #define uint unsigned int
复制代码2、
管脚使能:
- ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
- ROM_GPIOPinConfigure(GPIO_PA0_U0RX);
- ROM_GPIOPinConfigure(GPIO_PA1_U0TX);
- ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
- UARTStdioInit(0);
-
- ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC|SYSCTL_PERIPH_GPIOD);
- //ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_4);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_5);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_6);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_6);
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);
- lcd_initial();
复制代码驱动函数:
视频: