This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
尊敬的 Roberto Romano:
关于此链接、我更改了一些引脚分配并编译了程序并转储到 msp430g2553。
在 Launchpad MSP-EXP430G2上、复位后工作正常、能够显示在 LCD 屏幕上。
但是、当我倾倒到同一微控制器的独立板时、它无法正常工作所有连接都正常、但不会显示在 LCD 上。
是否有任何问题,我是否应该在代码中添加更多内容以使其正常工作。
/*此程序是来自 Marek Prochazka 的 HD44780驱动程序无繁忙检查原始版本的示例,经过调整和调试,然后发布到 TI e2e 的公共域中。 该程序对 LCD 引脚分配了一个位空闲分配、因此6个空闲引脚可以通过任何方式连接到 LCD。 从项目设置中选择。 在 LCD 16x2和 MSP430G2231上进行了测试 */ //#include "io430.h" // #include // LCD 端口分配 #define LCD_DIR P2DIR #define LCD_OUT P2OUT // LCD 引脚分配 #define LCD_PIN_RS BIT2 //#define LCD_PIN_RW BIT7 #define LCD_PIN_EN BIT3 #define LCD_PIN_D4 BIT6 #define LCD_PIN_D5 BIT7 #define LCD_PIN_EN 引脚 / 将 LCD_5引脚设为无效的过程6 #define LCD_PIN_EN 引脚/将 LCD5引脚设为无效/将 LCD5引脚 _DELAY_CYCLES (20); LCD_OUT |= LCD_PIN_EN; __DELAY_CYLES (20); //释放 Strobe LCD_OUT &= (~LCD_PIN_EN);}//这会发送4位数据 void SendNibble (char data){//清除所有数据位 LCD_OUT &=~(LCD_PIN_5|Dif ) LCD_OUT |= LCD_PIN_D4; IF (DATA & 0x02) LCD_OUT |= LCD_PIN_D5; IF (DATA & 0x04) LCD_OUT |= LCD_PIN_D6; IF (DATA & 0x08) LCD_OUT |= LCD_PIN_D7; //半字节设置完成,发送到 LCD LCDPulseEN (); __delay_cycles (500); } //向 LCD 寄存器发送一个字节的数据 void SendByte (unsigned data) { SendNibble (data>4)& 0x0F); SendNibble (data)& 0x0F ); } //向命令寄存 器发送一个字节 void SendInstruction (unsigned char data) { //将寄存器设置为命令 LCD_OUT &=~LCD_PIN_RS; SendByte (data); __DELAY_CYCLS (80000); } //将一个数据字节发送到 LCD 寄存 器 void LCDputch (Sendchar data) { //将寄存器设置为 data lCD_out |= LCD_pin (500 个数据字节);= LCD_pin (unsigned) void InitLCD (void) { //清除 LCD 控制和数据行的所有位 LCD_OUT &=~(LCD_PIN_EN|LCD_PIN_RS);//|LCD_PIN_DRW); //将 LCD 引脚设置为输出 LCD_DIR |=(LCD_PIN_EN|LCD_PIN_Rs|LCD_D4|LCD_PIN_R5|LCD_RWD_Rw/ LCD_R5|LCD_PIN_PIN_RUT_RUT_RUT_RIS/ LCD_PIN_RIN_RIN_RIN_PUT_PUT_R // LCD 可能处于未知状态,因此设置为已知状态,发送3次 LCD 设置为8位模式 SendNibble (3); __delay_cycles (16000);//等待 Sendinit SendNibble (3); __delay_cycles (400); SendNibble (3); __delay_cycles (400); //现在为 _ SendNibble (2);发送0x800 (2);发送0x2)到 SendNibble (4);发送0x2 (2) //现在设置为模式4位2行5x7 char SendInstruction (0x28); __delay_cycles (8000); //将光标设置为0x0c 至不可见光标 SendInstruction (0x0E);//c __delay_cycles (800); //清除屏幕 增量(0x01);__delay_cycles (0x80) ;// SendInstruction (0x8000) ;//设置数据增量(0x06);// SendInstruction (0x8000) //将写入光标设置为 Row and Col void LCDSetPosition (char Row、char Col) { //如果行不为0、则添加0x40 (4行模型需要添加0 20 60 40) if (Row) COL+=0x40; SendInstruction (0x80 | Col); __delay_cycles (800); } //清除 LCD void LCDClear (void) { SendInstruction (0x01); __delay_cycles (100000); } // LCD 光标到第一行 void LCDGoToHome (void) {SendInstruction (0x02); void LCDShift (0x18);void LCDClut/0xCdleft Instruction (0x000/ 0xCdleft)(void)/0xCdleft Instruction (void)(0xCdleft)/0xCdleft)(void (0xCdleft)/0xCdleft //光标闪烁模式 void LCDBlinkCursor (void) { SendInstruction (0x0F); } //将文本行打印到 LCD 屏幕 void LCDPrintString (const char * text) { while (* text) LCDputch (* text++); }/********* 8 MHz 时钟配置********* / void configureClocks_1MHz (void) { #if 0 //将系统 DCO 设置为8MHz // BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO IFG1 &=~OFIFG; //清除 OSCFault 标志 __bis_SR_register (SCG1 + SCG0); //停止 DCO // BCSCTL2 |= SELM_1 + DIVM_3; // MCLK = LFXT1/8 BCSCTL1 = CALBC1_1MHz; DCOCTL = 0; DCOCTL = CALBC1_1MHz; FCTL2 = FWKEY + FSSEL0 + FN1; //针对闪存定时发生器的 MCLK/3 //将 LFXT1设定为 VLO @ 12kHz // BCSCTL3 |= LFXT1S_2; #else if (CALBC1_1MHz=0xFF)//如果校准常数被擦除 { while (1); //不加载,陷阱 CPU!! } DCOCTL = 0; //选择最低 DCOx 和 MODx 设置 BCSCTL1 = CALBC1_1MHZ; //设置范围 DCOCTL = CALDCO_1MHz; //设置 DCO 阶跃+调制*/ #endif } void main (void) { char c; int i; //停止看门狗计时器以防止超时复位 WDTCTL = WDTPW + WDTHOLD; configureClocks_1MHz (); P2SEL &=~(0xC0); P2DIR |= 0xC0; InitLCD (); LCDPrintString ("Hello world"); c='0'; while (1) { LCDSetPosition (1、10); for (i=0;i<100;i++) _DELAY_CYCLES (1000); LCDputch (c); C++; if (c>'9') c='0'; } }
JD、您好!
由于一些接地问题、它现在可以工作、但它没有工作。
以下是代码片段。
unsigned char packetBuf[PACKETLEN];
unsigned int 电池电压;
packetBuf[106]=电池电压&0xFF;
packetBuf[107]=(电池电压>> 8)& 0xFF;
我需要您的指导来显示8位值并将其通过数据库传递到 LCD 和显示屏、这与太阳能和负载电压和电流类似
Phanendra、您好!
请使用上一个主题讨论此问题:
https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/791431
最棒的
Chris