سلام. من baud rate میکرو را روی 9600 با فرکانس 8 مگا هرتز تنظیم کردم که 0.1 درصد خطا داره. وقتی پشت سرهم 13 تا داده را با متلب برای میکرو میفرستم داده ها را نمیگیره ولی وقتی با یک فاصله زمانی مثلا 0.5 ثانیه ای داده ها را میفرستم همه را میکرو دریافت میکنه آیا مشکل از خطای baud rate است یا چیز دیگر؟؟؟؟
اطلاعیه
Collapse
No announcement yet.
دریافت چند داده پشت سرهم با uart
Collapse
X
-
پاسخ : دریافت چند داده پشت سرهم با uart
نوشته اصلی توسط ajapyyشما احتمالا کریستال داخلی AVR رو داری استفاده می کنی که خطا زیاد داره. از کریستال خارجی استفاده کن و ترجیحا مقادیری که این خطا رو صفر کنند مثل 11.0592 یا ...
این پست رو هم اگر برای AR زدی باید بری جای دیگه
دیدگاه
-
پاسخ : دریافت چند داده پشت سرهم با uart
با سلام
نوشته اصلی توسط morteza7090سلام دوست عزیز-چطور با متلب بتونم با میکرو ارتباط سریال برقرار کنم؟ویندوز 7هلیپر ترمینال نداره هرچی ام دانلود میکنیم ناقصه .یه راهنمایی می کنید بد جور گیرم.الان نمیدونم مشکل از برنامه منه یا محیطی که ارسال ودریافت میکنم سریال رو
نرم افزار MICRO C PRO FOR ARM هم هست که البته خودش IDE هست، اما ابزاز های جانبی خوبی داره، که توش یه ترمینال جالب هم هست، که من اکثرا از این ایتفاده می کنمThe healthy human mind doesn't wake up in the morning thinking this is his last day on earth.
دیدگاه
-
پاسخ : دریافت چند داده پشت سرهم با uart
خواهش می کنم، بله کابل یو اس بی یا چیز دیگه لایه فیزیکی کار هست و به برنامه کار نداره، کار کردن هم بله اسونه، تنظیمات رو انجام بدین، پورت رو باز کنین و ارسال و دریافت داشته باشینThe healthy human mind doesn't wake up in the morning thinking this is his last day on earth.
دیدگاه
-
پاسخ : دریافت چند داده پشت سرهم با uart
نوشته اصلی توسط hessam2013خواهش می کنم، بله کابل یو اس بی یا چیز دیگه لایه فیزیکی کار هست و به برنامه کار نداره، کار کردن هم بله اسونه، تنظیمات رو انجام بدین، پورت رو باز کنین و ارسال و دریافت داشته باشین
این یه نمونه برنامه سادس که نوشتم
http://opload.ir/downloadf-e2846788b28b1-rar.html
اینم الان نوشتم اما اتفاقی نیففتاد مشکل کارم از کجاست
کد:#include <lpc17xx.h> #include <stdio.h> #include <string.h> #define LCD_LPC1768 /* Char LCD definition */ #define LCD_PORT_2 #define LCD_RS 0 #define LCD_RW 1 #define LCD_E 2 #define LCD_DB4 4 #define LCD_DB5 5 #define LCD_DB6 6 #define LCD_DB7 7 #include "lcd.h" #include "uart.h" char uart0_cunter=0; char uart0_buffer[10]; void UART0_IRQHandler(void) { uart0_buffer[uart0_cunter]=LPC_UART0->RBR; uart0_cunter += 1; } void delay_ms(int); void delay_ms(int t){ int j=0; while(t--){ for(j=0;j<=20000;j++); }} int main(){ int s; unsigned char sms[10]={'m','o','r','t','e','z','a','\n'}; lcd_init(); SystemInit(); UART0_Init (); lcd_putsf("hello");//test lcd delay_ms(1000); lcd_clear(); while(1){ lcd_putsf(uart0_buffer); delay_ms(1000); UART0_SendString(sms); lcd_clear(); } }
دیدگاه
-
پاسخ : دریافت چند داده پشت سرهم با uart
اینم هدر uart.c
دوستان ببینم کسی میتونه کمکم کنه
پروژه باید تحویل بدم نمیدونم مشکل کارم کجاست
کد:/*------------------------------------------------------------------------------- www.ECA.ir LPC1768 Dev Board Rev.A --------------------------------------------------------------------------------*/ #include "lpc17xx.h" /* LPC17xx definitions */ #include "uart.h" #define FPCLK 25000000 #define UART0_BPS 9600 /* 0 Serial communication baud rate */ /********************************************************************************************************* ** Function name: UART0_Init ** Descriptions: By default initialize the serial port 0 pins and communication parameters. Set to 8 data bits, 1 stop bit, no parity ** input parameters: No ** output parameters: No ** Returned value: No *********************************************************************************************************/ void UART0_Init (void) { uint16_t usFdiv; /* UART0 */ LPC_SC->PCONP |=(1<<3); LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */ LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0) */ LPC_UART0->LCR = 0x83; /* Allows you to set the baud rate */ usFdiv = (FPCLK / 16) / UART0_BPS; /* Set baud rate */ LPC_UART0->DLM =usFdiv / 256; LPC_UART0->DLL =usFdiv % 256; //LPC_UART0->FDR=0X43; LPC_UART0->LCR = 0x03; /* Locked baud rate */ LPC_UART0->FCR =0x07; LPC_UART0->IER = 0x01; NVIC_SetPriority(UART0_IRQn,0); /* Default priority group 0, can be 0(highest) - 31(lowest) */ NVIC_EnableIRQ(UART0_IRQn); } /********************************************************************************************************* ** Function name: UART0_SendByte ** Descriptions: send data from serial port 0 ** Input parameters: data: data sent ** Output parameters: None ** Returned value: None *********************************************************************************************************/ int UART0_SendByte (int ucData) { while (!(LPC_UART0->LSR & 0x20)); return (LPC_UART0->THR = ucData); } /*---------------------------------------------------------------------------- Read character from Serial Port (blocking read) *----------------------------------------------------------------------------*/ int UART0_GetChar (void) { while (!(LPC_UART0->LSR & 0x01)); return (LPC_UART0->RBR); } /********************************************************************************************************* Write character to Serial Port ** Function name: UART0_SendString ** Descriptions: send a string to the serial port ** Input parameters: s: pointer to send the string ** Output parameters: None ** Returned value: None *********************************************************************************************************/ void UART0_SendString (unsigned char *s) { while (*s != 0) { UART0_SendByte(*s++); } } void UART0_SendChar(uint16_t disp) { uint16_t dispbuf[4]; uint8_t i; dispbuf[3] = disp%10 + '0'; dispbuf[2] = disp/10%10 + '0'; dispbuf[1] = disp/10/10%10 + '0'; dispbuf[0] = disp/10/10/10%10 + '0'; for(i=0;i<4;i++) UART0_SendByte(dispbuf[i]); }
دیدگاه
-
پاسخ : دریافت چند داده پشت سرهم با uart
نوشته اصلی توسط hessam2013از پی سی چی به میکرو میفرستین، بیشتر از 10 حرف ؟
هیچکدوم نمیاد....
فقط گاهی اوقات کارکتر که با دستورکد:UART0_GetChar()
دیدگاه
دیدگاه