![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2012
Bài gửi: 5
: |
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); } } } |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|