سلام
این سورس کد avr :
طبق این برنامه هر دوثانیه یکبار باید رشته "hello world!" از طریق پورت RS232 برای کامپیوتر ارسال بشه و باید همه اطلاعات به صورت یک رشته 12 بایتی برسه اما توی pc این اطلاعات دریافت میشه:
یعنی رشته بافر نمیشه و به صورت بایت به بایت ارسال میشه!
خیلی باهاش ور رفتم ولی نشد که نشد!
کسی میدونه مشکل از چیه؟!
در ضمن مشکل از برنامه port listener نیست
آی سی هم atmega8 هست
پیشاپیش ممنون
این سورس کد avr :
کد:
[left]#include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include <avr/interrupt.h> static int uart_putchar(char c, FILE *stream); static FILE uart_stdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); static int uart_putchar(char c, FILE *stream) { if (c == '\n') uart_putchar('\r', stream); loop_until_bit_is_set(UCSRA, UDRE); UDR = c; return 0; } void USARTInit(uint16_t ubrr_value) { UBRRH=0x0; UBRRL=ubrr_value; //set BAUDRATE to 19200 bps FOR 4Mhz OSC /*ASYNCHRONOUSE_8BIT_NO PARITY_1STOP*/ UCSRC = ((1<<URSEL)|(3<<UCSZ0)); UCSRB=(1<<RXEN)|(1<<TXEN); } int main() { USARTInit(51); //UBRR = 51 while(1) { stdout = &uart_stdout; printf("hello world!"); _delay_ms(2000); } return 0; }[/left]
کد:
"h" ( 1 bytes) "e" ( 1 bytes) "l" ( 1 bytes) "l" ( 1 bytes) "o" ( 1 bytes) "w" ( 1 bytes) "o" ( 1 bytes) "r" ( 1 bytes) "l" ( 1 bytes) "d" ( 1 bytes) "!" ( 1 bytes)
خیلی باهاش ور رفتم ولی نشد که نشد!
کسی میدونه مشکل از چیه؟!
در ضمن مشکل از برنامه port listener نیست
آی سی هم atmega8 هست
پیشاپیش ممنون
دیدگاه