Trích:
Nguyên văn bởi namqn
Trước hết, bạn đã chọn tốc độ là 100 kHz. Theo bảng 22-36 trong datasheet của dsPIC30F2010 (phiên bản DS70118G), thời gian bus rỗi tối thiểu là 4.7 us. Với code cho master hiện thời của bạn, tôi cho rằng thời gian này có thể bị vi phạm.
|
nếu như anh nói thì sau mỗi lần truyền mình phải có thời gian delay >=4.7us hả anh
Trích:
Nguyên văn bởi namqn
Đối với slave, bạn xem lại giá trị địa chỉ được nạp vào thanh ghi I2CADD (giá trị mà bạn đang dùng là 7-bit địa chỉ được dịch trái 1 bit và kết hợp với bit R/W, chứ không phải là 7-bit địa chỉ chính xác). Chú ý rằng các địa chỉ 7 bit hợp lệ nằm trong phạm vi 0x04 - 0x77.
|
em chưa hỉu lắm ý của anh, anh có thể nói rõ hơn không anh ?.theo em biết thì địa chỉ trong thanh ghi I2CADD<6:0> được so sánh với I2CRSR<7:1> nên em chưa hỉu câu "giá trị mà bạn đang dùng là 7-bit địa chỉ được dịch trái 1 bit và kết hợp với bit R/W, chứ không phải là 7-bit địa chỉ chính xác" .mong anh giải thích cho em hỉu ,em cám ơn anh nhìu