Trích:
Nguyên văn bởi namqn
Khi có ngắt nhận ký tự ở dsPIC, bạn chỉ tăng biến đếm chứ không lấy ký tự ra khỏi bộ đệm của UART. Bạn nên tạo một bộ đệm ở dsPIC, khi có ký tự là lấy ngay ra khỏi bộ đệm (giả sử bộ đệm là buff[], trong đoạn code xử lý ngắt bạn thực hiện buff[i] = U2RXREG, i cần được khởi tạo trước đó).
Nên xóa cờ ngắt sau khi đã phục vụ xong ngắt, thay vì ngay đầu code xử lý ngắt. Cách đơn giản để phản hồi về PC của bạn là khi vào code xử lý ngắt, bạn đọc được ký tự nào thì gửi ngược ký tự đó về PC. Ví dụ, U2TXREG = buff[i].
Bộ đệm của UART trong dsPIC chỉ chứa được 4 ký tự, do đó bạn chỉ nhận được 4 ký tự đầu tiên (các ký tự sau đó sẽ bị dsPIC bỏ qua, vì lý do tràn bộ đệm, mời bạn xem lại các tài liệu đã được tôi đề cập trong tutorial). Cũng mời bạn đọc lại tutorial của tôi.
Những gì tôi vừa nêu trên đã được đề cập trong tutorial.
Thân,
|
thế để mình nhận được nhiều hơn 4 kí tự thì mình phải cóa bọ đêm đi hả bac, hay làm như thế nào ah.
Còn khi em tr 1 lúc 12 byte thì sao chỉ xảy ra có 2 lần ngắt ah