![]() |
Giao tiêp RS232 giữa 2 pic8f4620
Mình đang làm về giao tiếp RS232 giữa 2 con pic 18f4620. Mình thắc mắc khi mình cho 2 con pic giao tiếp thực tế. Ban đầu khi cấp điện cho 2 con pic hoạt động, thì data được truyền đi và con pic (nhận) data hiển thị đúng giá trị sau khi truyền là hiển thị từ 0 đến 9. Nhưng khi reset con pic (truyền), thì con pic (nhận) không hiển thị đúng giá trị, hay nói cách khác là nó không cập nhật giá trị mới. Mà phải reset lại nó mới nhận được. Như vậy có cách nào khắc phục lỗi này không, mong các bạn giúp đỡ. Thanks!
Chương trình của việc truyền void main() { set_tris_c(0x00); set_tris_b(0b00000010); setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4); set_uart_speed(9600); //giao tiep RS232 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // TODO: USER CODE!! while(1) { for(i=0;i<10;i++) { InValueOut=maled[i]; output_d(maled[i]); putc(InValueOut); Delay_ms(255); } } } Chương trình nhân data void main() {set_tris_b(0x01); //SPI data in B0, chan cho chip slave B2 set_tris_c(0b10000000); //chan RC7 nhan RS232 set_tris_d(0x00); //lcd //setup_spi( SPI_MASTER | SPI_L_TO_H| SPI_CLK_DIV_16 ); //giao tiep SPI set_uart_speed(9600); //giao tiep RS232 //LCD_Init(); while(1) { if(kbhit()) { inDataIn=getch(); //nhan // delay_ms(200); output_d(inDataIn); delay_ms(200); } } } |
chúc bạn thành công
1 Attachment(s)
mình đã làm chủ đề từ rất lâu rồi.... nhưng ở mức cơ bản.
minh chia sẽ với bạn cái này nhe.... chúc bạn thành công. |
Múi giờ GMT. Hiện tại là 04:08 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam