[C5] Bài tập UART & C#

Tan Sy Nguyen

Cố Vấn CLB
Staff member
Tuần này chúng ta đã học xong bài UART và giao tiếp với máy tính bằng GUI C#. Đây là bài tập cho các bạn, mình đã làm sẵn 1 cái form demo để các bạn dễ hình dung. Và sau đây giới thiệu (từ dưới lên) vài chức năng (mà các bạn sẽ code ;););)):
- Bên dưới là cái combobox để chọn COM: trên lớp đã có code quét 1 lần khi khởi động, các bạn áp dụng tương tự dùng timer để khoảng 1s nó quét lại 1 lần nhé.
- Connect button đồng thời là Disconnect luôn.
- Quit button
- Trên chút là cái listbox để nhận dữ liệu UART về (nhớ dùng delegate để hiển thị).
- Phần Display LCD: khi gõ 1 string vào đây và send thì dòng này sẽ hiển thị lên LCD
- 2 phần checkbox port phía trên: khi click chọn vào 1 bit nào thì bit đó dưới VDK sẽ on, bỏ chọn thì sẽ off. Nhớ là click chọn hay bỏ chọn thì led ở dưới phải on/off ngay.
Tuần sau các bạn đi học bình thường (chưa tới lễ mà), nhớ làm bài tập đầy đủ để mình sửa cho các bạn, và sẽ nhận bài tập cuối khoá để làm xong trước thi cuối kì (tốt nghiệp rồi :o:o:o)
 

Attachments

phungquan2512

Trứng gà
lễ tết cho tụi em nghỉ còn về quê nữa chứ, hix hix. nhớ ba mẹ, nhớ nhà quaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1!
 

Tan Sy Nguyen

Cố Vấn CLB
Staff member
@phungquan2512: Chúng ta đến lớp với tinh thần trao đổi kỹ thuật là chính, nếu bạn làm xong bài tập trên, chạy OK thì cứ yên tâm về quê đc rồi
@nguyentambi: 4rum luôn sôi nổi các topic C5, anh cũng thông báo giờ học và phòng học hôm trước. Bạn ko để ý đó thôi
 

light

Thành Viên PIF
lớp mình có học SPI không a, thấy mấy thẻ nhớ xài chuẩn này, được học thì tuyệt quá
 

bigboy061293

Thành Viên PIF
Code:
private void oncom(object sender, SerialDataReceivedEventArgs e)
        {
            string s;
            [COLOR="red"]s = com.ReadLine();[/COLOR]
            display(s);
        }
cho em hỏi chổ đọc ra biến s, điểm khác nhau giữa readline và readexisting là gì ?
với lại nếu em dùng readexisting thì đôi lúc dữ liệu đọc được là 1 dấu "." còn readline thì khác. với lệnh readline, nếu truyền 1 kí tự như "a", "b" thì echo lại nó vẫn bình thường còn khi truyền 1 chuỗi dài như "abcde" hay "adkjdhsf" thì có lúc echo lại trọn cả chuỗi, có lúc chỉ được 1 phần nào đó có chuổi thôi.

mấy hôm nay em bận việc suốt nên không đi học được, anh làm ơn chỉ lại rõ rõ chổ này dùm em nhe anh, em cám ơn trước :)
 

Tan Sy Nguyen

Cố Vấn CLB
Staff member
UART khi bạn gửi 1 chuỗi thì nó sẽ đóng thành 1 khung có ký tự bắt đầu và kết thúc (STX và ETX).
- Readexisting là đọc 1 khung này (dù chuỗi bạn gửi dài hay ngắn thì 1 lần send nó cũng đóng thành 1 khung).
- Readline thì nó sẽ đọc đến khi nào nhận được kí tự '\n' (dù bạn gửi bao nhiều khung, hay chưa kết thúc 1 khung miễn sao nó nhận tới \n là ko nhận nữa).
Còn vấn đề của bạn thì mình vẫn chưa hiểu lắm, nhưng bạn có thể debug chương trình bằng cách đặt breakpoint ở lệnh display, như thế khi chạy đến display chương trình sẽ dừng lại (chưa thực hiện lệnh này) để bạn xem thử string s chứa những gì.
 

Tan Sy Nguyen

Cố Vấn CLB
Staff member
Thông báo nghỉ học

Để có thời gian cho các bạn về quê, cũng như có thời gian nghỉ ngơi sau mấy tháng học tập mệt nhọc. Mình thông báo đến các bạn lớp C5, tuần này chúng ta tạm nghỉ. Tuần sau các bạn nhớ đi học lại bình thường nhé.
Nhiệm vụ tuần sau là chúng ta sẽ giải đáp 1 số thắc mắc về lập trình C#, sẽ chia lại nhóm và phân bài tập lớn cuối khoá. Hoàn thành bài tập thì các bạn sẽ chính thức được kết nạp vào CLB để cùng các thành viên khác cống hiến cho mục tiêu "Payitforward" của CLB.
Dù nghỉ ngơi nhưng cũng ko quên bài tập, về quê ăn chơi cũng dành chút thời gian suy nghĩ, làm việc đầu óc 1 tí nhé. Có làm thì các bạn mới biết mà hỏi, có hỏi thì mới hiểu, đó là lợi ích của chính các bạn đấy.
Chúc các bạn kì nghỉ lễ vui vẻ :D:D:D
 
Top