NewSistems Опубликовано 23 июля, 2016 Жалоба Поделиться Опубликовано 23 июля, 2016 Здравствуйте! За основу проекта взял этот материал, добавил лишь переключатель baud rate. Собрал, установил нужную частоту дискретизации, но прочитать сообщение не удалось, много ошибок. Извиняюсь за качество фото. Что стоит попробовать для устранения ошибок? Код прилагаю. sbit LCD_RS at RB0_bit;sbit LCD_EN at RB3_bit;sbit LCD_D4 at RB4_bit;sbit LCD_D5 at RB5_bit;sbit LCD_D6 at RB6_bit;sbit LCD_D7 at RB7_bit;sbit LCD_RS_Direction at TRISB0_bit;sbit LCD_EN_Direction at TRISB3_bit;sbit LCD_D4_Direction at TRISB4_bit;sbit LCD_D5_Direction at TRISB5_bit;sbit LCD_D6_Direction at TRISB6_bit;sbit LCD_D7_Direction at TRISB7_bit;sbit Btn1 at RA3_bit;char i;unsigned short row=1,col=1;unsigned short rate_idx=0;void main(){ TRISA = 0b00001000; PORTA = 0; CMCON |= 7; // Disable Comparators Lcd_Init(); Delay_ms(100); UART1_Init(2400); // set baud rate Delay_ms(200); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_UNDERLINE_ON); Lcd_Out(1,1,"UART Reader"); Delay_ms(2000); Lcd_Cmd(_LCD_CLEAR); while(1){ if(!Btn1){ Delay_ms(500); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Baud rate: "); rate_idx++; if(rate_idx > 3) rate_idx=0; if(0 == rate_idx){ UART1_Init(1200); Lcd_Out(1,12,"12"); } else if (1 == rate_idx){ UART1_Init(2400); Lcd_Out(1,12,"24"); } else if (2 == rate_idx){ UART1_Init(4800); Lcd_Out(1,12,"48"); } else if (3 == rate_idx){ UART1_Init(9600); Lcd_Out(1,12,"96"); } Lcd_Out(1,14,"00"); Delay_ms(2000); Lcd_Cmd(_LCD_CLEAR); } if(1 == UART1_Data_Ready()){ i=UART1_Read(); if(27 == i){ Lcd_Cmd(_LCD_CLEAR); col=1,row=1; } else if(i > 31 && i < 127) { Lcd_Chr(row,col,i); col++; } } if(17==col && 1==row){ row=2; col=1; } if(2==row && 17==col){ Lcd_Cmd(_LCD_CLEAR); col=1; row=1; } }} Прикрепленные миниатюры http://forum.cxem.net/uploads/monthly_07_2016/post-186532-0-39947700-1469203575_thumb.jpg Раздел: МК для начинающих Читать дальше Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.