工具/软件:Code Composer Studio
您好!
是否可以使用 GPIO 端口功能将数据直接发送到 LCD、或者是否应该使用您之前提到的任何通信协议?
这是我的代码...
#include "driverlib.h"
#include "device.h"
#include "lcd.h"
#include "stdlib.h"
#include "stdlibf.h"
//#define Port_A GPIO_PORT_A
int Hex 数据;
unsigned char Cmd;
uint16_t i;
void lcd_init (void);
void lcd_cmd (unsigned char Cmd);
void lcd_disp (const char * Msg);
char * Msg ="Hello World!";
//
//主函
//
void main (void)
{
//
//初始化设备时钟和外设
//
device_init();
//
//初始化 GPIO 并将 GPIO 引脚配置为推挽输出
//
DEVICE_initGPIO();
GPIO_setPortPins (GPIO_PORT_A、0x0101003F);
GPIO_setDirectionMode (GPIO_PORT_A、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (52、GPIO_PIN_TYPLE_PULLUP);//启用 GPIO52上的上拉
GPIO_setPadConfig (97、GPIO_PIN_TYPE_PULLUP);//启用 GPIO97上的上拉
GPIO_setPinConfig (GPIO_52_GPIO52);
GPIO_setPinConfig (GPIO_97_GPIO97);
GPIO_setDirectionMode (52、GPIO_DIR_MODE_OUT);
GPIO_setDirectionMode (97、GPIO_DIR_MODE_OUT);
while (* Msg!='\0')
{
LCD_disp (Msg);
DEVICE_DELAY_US (200);
MSG++;
}
}
void LCD_init (void)
{
DEVICE_DELAY_US (2000);
LCD_cmd (0x30);
DEVICE_DELAY_US (1000);
LCD_cmd (0x30);
DEVICE_DELAY_US (100);
LCD_cmd (0x30);
LCD_cmd (0x38);// 8位模式2行显示
LCD_cmd (0x10);//将光标位置向左移动
LCD_cmd (0x01);//清除显示
LCD_cmd (0x06);//将光标向右移动
LCD_cmd (0x0F);//光标上的显示闪烁
}
void lcd_cmd (无符号字符 Cmd)
{
GPIO_writePin (52、0);
GPIO_writePortData (GPIO_PORT_A、Cmd);
GPIO_writePin (97、1);
DEVICE_DELAY_US (200);
GPIO_writePin (97、0);
}
void lcd_disp (const char * Msg)
{
hex_data=atoi (Msg);
GPIO_writePin (52、1);
GPIO_writePortData (GPIO_PORT_A、Hex 数据);
GPIO_writePin (97、1);
DEVICE_DELAY_US (46000);
GPIO_writePin (97、0);
}
程序中没有错误、但我没有获得输出。 我知道会有错误。
请在这方面帮助我。