Em chào các bác ạ. Số là em đang làm một bài nho nhỏ là truyền ký tự từ 8051 lên máy tính qua cổng giao tiếp RS232. Giờ em gặp phải 2 vấn đề như sau :
1-Em có thể truyền từng ký tự lên một với tốc độ 4800baud, nhưng nếu đổi lên 9600baud thì toàn ra ký tự lỗi cả.
2-Em không thể truyền một chuỗi ký tự lên được, lập trình toàn bị báo lỗi sau : error C100: unprintable character 0xA0 skipped
Code của em là :
Các bác có thể giúp em được không ạ? Em xin chân thành cảm ơn.
1-Em có thể truyền từng ký tự lên một với tốc độ 4800baud, nhưng nếu đổi lên 9600baud thì toàn ra ký tự lỗi cả.
2-Em không thể truyền một chuỗi ký tự lên được, lập trình toàn bị báo lỗi sau : error C100: unprintable character 0xA0 skipped
Code của em là :
Code:
#include <REGX51.H> #include "string.h" void send(unsigned char s) // Funtion to transmit serial data { //P2=P1-32; SBUF=s; while(TI==0); TI=0; /*SBUF=P1; while(TI==0); TI=0;*/ } void sendchuoi(unsigned char *s) //Ð?nh nghia hàm g?i 1 chu?i ký t? { unsigned char lens, count; lens=strlen(s); for(count=0;count<lens;count++) { send(*(s+count)); } } void main() { TMOD=0x20; //Timer1, mode 2, baud rate 9600 bps TH1=0XFA; SCON=0x50; TR1=1; while(1) { sendchuoi("Hanoi-Vietnam"); send(10); } }
Comment