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]
-
Chú ý là chỉ khi MCU có yêu cầu gửu kí tự thì mới tiếp tục gửu, còn chưa có yêu cầu gửu thì không đc gửu tránh bị đè mất dữ liệu khi gửu đó.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
-
Bạn khai báo sai rồi.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.
Mong bạn hãy giúp cho đoạn code mẫu.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
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -

Comment