mình đang làm phần giao tiếp với máy tính qua RS232, nếu máy tính truyền một ký tự thì mình giải quyết được, còn nếu máy tính truyền một chuổi kết thúc bằng ký tự ENTER thì mình vẫn chưa làm được, đang bí quá. yêu cầu là chuổi sau khi được gửi xuống thì lưu vào biến temp, xin các cao thủ chỉ giúp.
Thông báo
Collapse
No announcement yet.
Xin hỏi về vấn đề nhận một chuổi từ máy tính
Collapse
X
-
Biến temp của bạn phải là một mảng kí tự( theo kiểu C/C++)vậy biến tem này cũng có độ dài n và kí hiệu là temp[n]. Bạn có thể làm thuật toán như sau:
Giả sử chuỗi kí tự cần gửu là String[n] có độ dài là n kí tự ASCII, các bước gửu lần lượt như sau:
Bước 1: Gửu lệnh thông báo bắt đầu gửu chuỗi từ PC tới MCU
Bước 2: Gửu lệnh sẵn sàng nhận chuỗi từ MCU tới PC
Bước 3: Gửu kí tự đầu tiên trong chuỗi String[n] là String[0] từ PC tới MCU
Bước 4: MCU nhận đc kí tự đầu tiên thì lưu temp[0]=(kí tự nhận dc) rồi gửu thông báo yêu cầu gửu kí tự thứ 2( từ MCU tới PC)
Bước 5: Sau khi đọc yêu cầu gửu kí tự thứ 2 của MCU thì chuyển sang gửu kí tự tứ 2 (từ PC tới MCU)
Bước 6: MCU nhận đc kí tự thứ 2 thì lưu temp[1]=(kí tự nhận đc) gửu thông báo yêu cầu gửu kí tự thứ 3(Từ MCU tới PC)
Bước 7: Khi đọc đc yêu cầu gửu kí tự thứ 3 của MCU thì bắt đầu gửu kí tự thứ 4 (PC tới MCU)
.......................
Quá tình cứ tiếp tụ như vậy tới khi gửu đủ n kí tự trong chuỗi String[n] và PC báo kết thúc quá trình truyền dư liệu tới MCU
bạn phải kí hiệu các mã xác nhận gửu, yêu cầu gửu, kết thúc các quá trình gửu là các mã không phải là mã kí tự trong bảng mã ASCII để tránh cho việc hiểu lầm của PC và MCU với các kí tự cần gửu trong chuỗi String[n]
-
Nguyên văn bởi kidteam Xem bài viếtok đồng ý với bạn
đây là cách gửi từng ký tự
nói chung thì cần thỏa thuận giữa MCU và PC
Comment
-
minh cung biet vay, nhung tren C thi khai bao nhu the nao. minh dung ngat Rx nen hoi lung tung.
void nhan (void temp[])
khai bao ham ngat nhan du lieu nhu the ma no cu bao loi o bien temp do hoai. y minh muon chi can goi ham nhan(str) thi chuoi nhan duoc se luu vao chuoi str. xin cac bac co the viet luon chi tiet tung cau lenh dum luon de em co the giai quyet duoc van de nay. cam on nhieu.
sorry! do minh truy cap tren dien thoai nen go ko co dau.hãy cố gắng dù vướn phải thất bại!!!!!!!!
Comment
-
Nguyên văn bởi chipmickey Xem bài viếtminh cung biet vay, nhung tren C thi khai bao nhu the nao. minh dung ngat Rx nen hoi lung tung.
void nhan (void temp[])
khai bao ham ngat nhan du lieu nhu the ma no cu bao loi o bien temp do hoai. y minh muon chi can goi ham nhan(str) thi chuoi nhan duoc se luu vao chuoi str. xin cac bac co the viet luon chi tiet tung cau lenh dum luon de em co the giai quyet duoc van de nay. cam on nhieu.
sorry! do minh truy cap tren dien thoai nen go ko co dau.
void nhan (char temp[])
Comment
-
Bạn có thế cho 1 đoạn code mẫu ko.
Nguyên văn bởi congbinh1989 Xem bài viếtBiến temp của bạn phải là một mảng kí tự( theo kiểu C/C++)vậy biến tem này cũng có độ dài n và kí hiệu là temp[n]. Bạn có thể làm thuật toán như sau:
Giả sử chuỗi kí tự cần gửu là String[n] có độ dài là n kí tự ASCII, các bước gửu lần lượt như sau:
Bước 1: Gửu lệnh thông báo bắt đầu gửu chuỗi từ PC tới MCU
Bước 2: Gửu lệnh sẵn sàng nhận chuỗi từ MCU tới PC
Bước 3: Gửu kí tự đầu tiên trong chuỗi String[n] là String[0] từ PC tới MCU
Bước 4: MCU nhận đc kí tự đầu tiên thì lưu temp[0]=(kí tự nhận dc) rồi gửu thông báo yêu cầu gửu kí tự thứ 2( từ MCU tới PC)
Bước 5: Sau khi đọc yêu cầu gửu kí tự thứ 2 của MCU thì chuyển sang gửu kí tự tứ 2 (từ PC tới MCU)
Bước 6: MCU nhận đc kí tự thứ 2 thì lưu temp[1]=(kí tự nhận đc) gửu thông báo yêu cầu gửu kí tự thứ 3(Từ MCU tới PC)
Bước 7: Khi đọc đc yêu cầu gửu kí tự thứ 3 của MCU thì bắt đầu gửu kí tự thứ 4 (PC tới MCU)
.......................
Quá tình cứ tiếp tụ như vậy tới khi gửu đủ n kí tự trong chuỗi String[n] và PC báo kết thúc quá trình truyền dư liệu tới MCU
bạn phải kí hiệu các mã xác nhận gửu, yêu cầu gửu, kết thúc các quá trình gửu là các mã không phải là mã kí tự trong bảng mã ASCII để tránh cho việc hiểu lầm của PC và MCU với các kí tự cần gửu trong chuỗi String[n]
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 12:55 -
-
Trả lời cho Hỏi về test hipot cao ápbởi nguyendinhvanCách nghĩ của bạn là theo duy tâm thôi. Còn trong công việc thì phải theo duy lý.
Bạn vào goggle và gõ từ : tiêu chuẩn an toàn cách điện.
Bạn sẽ thấy vô vàn các quy định, VN cũng có , quốc tế cũng có. Mỗi vùng , mỗi khu vực,...-
Channel: Điện tử dành cho người mới bắt đầu
02-11-2024, 20:04 -
-
bởi lamvu0677Chào mọi người, ai làm về điện, đặc biệt biến áp xung, mâý con nho nhỏ gắn vào mạch nguồn, cho e hỏi tí ą, e cũng làm trong ty về biển áp thì đo kiểm thành phẩm sẽ kiểm cao áp, tức là kiểm xem có phóng điện giữa các cuộn dây với...
-
Channel: Điện tử dành cho người mới bắt đầu
01-11-2024, 21:05 -
Comment