![]() |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Jan 2007
Bài gửi: 79
: |
Bạn đặt Rthreshold bằng 1, Inputlen=0 có nghĩa là cứ nhận được 1 byte thì xảy ra ngắt, biến buffer sẽ chứa toàn bộ bộ đệm thu cổng COM rồi xóa toàn bộ bộ đệm thu đó.
Nên khi bạn gửi byte1 lên thì mscomm_omcomm xảy ra buffer(0) chứa byte1 đó. Sau đó xóa byte1 vừa nhận trong bộ đệm thu. Bạn lại tiếp tục gửi byte2 lên, quá trình được lặp lại, buffer(0) chứa byte2 còn buffer(1) ko chứa gì hết nên bằng 0. Mình nghĩ là như vậy. Bạn chỉ cần sửa lại Rthreshold bằng 2 để nhận 2 byte rồi mới ngắt rồi xử lý luôn một lần. Nếu không bạn phải khai báo cái mảng buffer của bạn là Static (mình chỉ nghĩ thế thôi chứ chưa thử). Cách làm trên là của thầy tôi dạy. Tôi nghĩ là đúng ko thể sai được. Nhưng thực tế thì tui nhận lâu lâu vẫn bị sai. Để khắc phục, ở dưới PIC tôi gửi lặp lại khoảng 3 lần cho chắc. Xác suất gửi đúng là tăng lên rất nhiều dù bạn có gửi bao nhiêu byte đi nữa. |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
Tham gia ngày: Jan 2013
Bài gửi: 5
: |
Kính mong thầy namqn giúp đỡ ạ ! ^_^
Thầy namqn ơi , thầy giúp em vấn đề này với ạ !
Em đang lập trình trên MPLAB với con PIC24FJ128GA010 Tất cả các việc : - Truyền 1 kí tự , chuỗi lên PC thì OK - Nhận 1 kí tự từ máy tính truyền xuống thì cũng OK Nhưng Em đang mắc chỗ NHẬN 1 CHUỖI KÍ TỰ TỪ PC to Vi điều khiển Code của em BUILD SUCCESSED nhưng không nhận được và không hiển thị lên màn hình như mong muốn ạ ! Em kính mong thầy giúp em với ạ ! Em xin cảm ơn Thầy nhiêu nhiều ạ ! Toàn bộ code của em ở đây thầy ạ ! http://www.mediafire.com/?7c4ft7pt6q9r7r6 TRẦN MINH TÂM --->Trân Trọng<--- |
![]() |
![]() |
![]() |
|
|