سلام دوستان
من مدتی هست می خوام سیم 908 رو با میکرو ARM LPC1768 راه اندازی کنم و تا الان هم به جاهایی رسیدم و می تونم دستور ارسال کنم و جواب بگیرم
ولی در دریافت یک مقدار مشکل به وجود میاد ،بدین صورت که مثل اگه 10 بار دستوری مانند ATE0 رو به میکرو بدیم OK میفرسته ولی اگر بخواهیم این OK ها رو دریافت کنیم و روی ال سی دی نشون بدیم از 10 تا 5 تاش رو دریافت می کنه اون هم یک در میان!!!!!!!! یعنی یه دونه دریافت میکنه یه دونه دریافت نمی کنه و....
این هم کدش
این هم فانکشن هاش
اول ها باودش 115200 بود کار نمی کرد و شکلک نشون میداد ولی الان که گذاشتم روی 105200 درست شده و درست میفرسته ،در خود برنامه رجیستر هاش رو نگاه می کردم همون نزدیک 115200 بود ،ممکنه مشکل از این باشه؟؟
ممنون میشم اگه چیزی میدونید راهنمایی کنید
من مدتی هست می خوام سیم 908 رو با میکرو ARM LPC1768 راه اندازی کنم و تا الان هم به جاهایی رسیدم و می تونم دستور ارسال کنم و جواب بگیرم
ولی در دریافت یک مقدار مشکل به وجود میاد ،بدین صورت که مثل اگه 10 بار دستوری مانند ATE0 رو به میکرو بدیم OK میفرسته ولی اگر بخواهیم این OK ها رو دریافت کنیم و روی ال سی دی نشون بدیم از 10 تا 5 تاش رو دریافت می کنه اون هم یک در میان!!!!!!!! یعنی یه دونه دریافت میکنه یه دونه دریافت نمی کنه و....
این هم کدش
کد:
int main(void) { uint8_t str1[20],str5[20],str2[20]; //--------------------- Uart0 setting --------------- UART0_Init(); //-------------------- Uart2 setting ---------------- UART2_Init(); //--------------------------------------------------- lcd_init(); lcd_clear(); dir_led_bord; led_blink(); //------------------------------------------- new_line(); while (1) { UART0_SendString("AT\r"); UART0_Getstring(str1); lcd_gotoxy(1,2); lcd_putsf(str1); UART0_SendString(str1); UART0_SendString("\n"); Delay(5000); UART0_SendString("ATE0\r"); UART0_Getstring(str1); lcd_gotoxy(1,2); lcd_putsf(str1); UART0_SendString(str1); UART0_SendString("\n"); Delay(5000); UART0_SendString("AT\r"); UART0_Getstring(str1); lcd_gotoxy(1,2); lcd_putsf(str1); UART0_SendString(str1); UART0_SendString("\n"); Delay(5000);
کد:
//*********************** Functions ************************ void Delay (uint32_t Time) { uint32_t i; i = 0; while (Time--) { for (i = 0; i < 5000; i++); } } /********************************************************** ** Function name: UART0_SendByte ***********************************************************/ int UART0_SendByte (int ucData) { while (!(LPC_UART0->LSR & 0x20)); // when transfer date set THRE return (LPC_UART0->THR = ucData); } /*---------------------------------------------------------------------------- Read character from Serial Port (blocking read) *----------------------------------------------------------------------------*/ int UART0_GetChar (void) { while (!(LPC_UART0->LSR & 0x01)); // when receive data set RDR return (LPC_UART0->RBR); } /****************************************************************** ** Write character to Serial Port *******************************************************************/ void UART0_SendString (unsigned char *s) { while (*s != 0) { UART0_SendByte(*s++); } } // ------------------------------------- int UART0_Getstring (char *str) { int i = 0; char *temp = str; do{ *temp = UART0_GetChar(); i++; }while(*(temp++) != 0x0A); *(temp-1) = 0; return i; }
ممنون میشم اگه چیزی میدونید راهنمایی کنید
دیدگاه