单片机串口通信
我想用51单片机和串口调试助手通信还要不要在单片机和笔记本电脑之间接一个max232做电平转换然后直接用串口线接到电脑上还是直接用那根usb下载线直接通信?谁能给我一个简单点的代码最好了
[解决办法]
单片机要通过232芯片做一次电平转换,如果笔记本没有外界串口(一般都不会有)再用以跟usb转串口的转接线去连你得232电平转换芯片就可以了
[解决办法]
代码到处都下的到, PC->RS232->MCU ,中间的RS232可以用USB转串口
[解决办法]
要做电平转换
[解决办法]
似乎有些usb转串口的转接线不需做电平转换。
[解决办法]
买个串口USB转TTL的东西就可以直接PC和单片机串行通信了,自己做的话可用芯片PL2303
[解决办法]
用MAX232转下电平用串口通信。 http://topic.csdn.net/u/20120402/14/20783361-0f9c-44b6-a09b-597169ec4216.html
[解决办法]
必须要电平转换的,因为TTL电平和232电平是刚好相反的。。。
#include <reg51.h>#include <string.h> unsigned char ch;bit read_flag= 0 ; void init_serialcom( void ) //串口通信初始设定 { SCON = 0x50 ; //UART为模式1,8位数据,允许接收 TMOD |= 0x20 ; //定时器1为模式2,8位自动重装 PCON |= 0x80 ; //SMOD=1; TH1 = 0xFD ; //Baud:19200 fosc="11".0592MHz IE |= 0x90 ; //Enable Serial Interrupt TR1 = 1 ; // timer 1 run TI=1; } //向串口发送一个字符 void send_char_com( unsigned char ch) { SBUF=ch; while (TI== 0); TI= 0 ; } //串口接收中断函数 void serial () interrupt 4 using 3 { if (RI) { RI = 0 ; ch=SBUF; read_flag= 1 ; //就置位取数标志 }} main() { init_serialcom(); //初始化串口 while ( 1 ) { if (read_flag) //如果取数标志已置位,就将读到的数从串口发出 { read_flag= 0 ; //取数标志清0 send_char_com(ch); } } }
[解决办法]
单片机开发板上一般带有电平转换的芯片,现在笔记本上一般没有串口了,可以用根串口转USB线接起来就行了
[解决办法]
串口转USB线
[解决办法]
嗯,最重要就是电平转换了。