A. 51单片机串口连接到电脑上计算机无法显示com端口如何解决(51单片机接收不到串口数据)
1. 51单片机接收不到串口数据
灯亮,证明你的线可以供电, usb有四根线。 usb转串口线不能保证不坏, 驱动不知道能不能再win8用, 目前两种可能,驱动问题,还有就是线坏了。没有了
2. 串口检测不到51单片机
电脑板载的串口不用装驱动,打开设备管理器看看里面有没有串口,有的话看看串口号是多少,用对应的串口号进行下载就可以了,如果设备管理器中没有串口,进入BIOS设置里面,把串口使能就可以了。
3. 51单片机串口不识别
你有没有使用usb转串口工具??有的话应该不会有乱码。
4. 单片机串口无法发送数据
1:先去下一个通用的串口调试软件代替你的vb程序,用你原来单片机的程序给计算机发数据,这样如果串口调试软件接收到的数据是正确,说明你的vb程序问题。
2:如果上述方法接收的还是错误数据,则建议把单片机串口工作方式改成方式三,波特率和其他的不用变。再然串口调试软件接收数据看看。另外:“PCON=0x00;//开总中断,开串口中断”PCON不是中断控制器,下面那句才是。开中断。
5. 51单片机串口打开失败
IE = 0x90;把里面的上面那句去掉,就行了。把ES=1,再来一个IE = 0x90;实际上ES=0了
6. 51单片机串口接收数据的处理程序
3.比如读取内存地址0x22中的数据 C语言中对于内存的访问是基于指针的,这个毋庸置疑,具体操如下 unsigned int *p= (unsigned int*)0x22 ;//定义指针,并且使指针指向了0x22这个 内存地址; 那么*p就是最终你要读取的数据了。4.至于如何通过串口显示到电脑我就不多说了(这不是难点),数据你都知道了,写到串口 缓冲区,在串口调试助手下就可以看到。5.虽然没有贴出具体代码,但这里面的思想可以让你解决更多问题。
7. 51单片机串口不够
串口通讯理想距离在两米以内,太长的话就容易出现误码,延长串口通讯的措施就是采用RS485规范了。
可以达到1公里以上。
8. 51单片机串口中断接收字符串
使用超时中断,字符串按一个个字节发送下去,每个字节发送间隙比较短。如果这个间隙超过一定得时间就认为这一串字符串发送完了。用这个方法可以接受不同长度的字符串
9. 51单片机串口发不出去
51单片机一次只能接收1个字节数据(8位),若要接收两个字节,串口工具应该分成两字节发送。比如先发送高字节,再发送低字节。对于 100H,按十六进制发送 01 00,单片机收到第一字节数据保存起来,收到第二字节后将两个8位数合并成16位数。
10. 51单片机串口usb电脑不显示
单片机接入后看设备管理器中的端口,里面有说的com几。
B. STC单片机 串口通信 奇偶校验
1、51单片机SCON=0xDA,工作在方式3.(方式2也可以)
串口 1 模式 3:
波特率是可变的,其它和模式2 相同
11 位数据通过TxD/P3.1 发送,通过RxD/P3.0 接收。一帧数据包含一个起始位(0),8 个数据位(低位在
先),一个可编程的第9 位,和一个停止位(1)。发送时,第9 位数据位来自特殊功能寄存器SCON 的
TB8 位.接收时,第9 位进入特殊功能寄存器SCON 的RB8 位。
SMOD
串口1波特率在模式3 = ( 2 / 32 ) x BRT独立波特率发生器的溢出率
当SMOD = 0时,串口1波特率 = BRT 独立波特率发生器的溢出率 / 32,
当SMOD = 1时,串口1波特率 = BRT 独立波特率发生器的溢出率 / 16,
BRT独立波特率发生器的溢出率 = Fosc/12/( 256 - BRT ),当BRTx12 = 0时,
BRT独立波特率发生器的溢出率 = Fosc / ( 256 - BRT ),当BRTx12 = 1时
TB8:发送时校验位,可以奇校验或偶校验(直接置0或1),然后再发送。
RB8:接收时校验位,判断接数据是否正确。
2、程序
/*****************************************
*串口1中断
*****************************************/
void RXD_Int_Service() interrupt 4
{
uint8 ch;
if(RI)
{
RI=0;
Usart1.RxdDly=6; //超过0.3S清空计数
Usart1.RxdBuf[Usart1.RxdCnt]=ch;
Usart1.RxdCnt++;
if(Usart1.RxdCnt>=10)
{
Usart1.RxdTrue=1; //接收正确。
Usart1.RxdNum=Usart1.RxdCnt;
Usart1.RxdCnt=0;
}
}
if(TI)//防止发送中断
{
TI=0;
}
}
void Timer0_InSevice() interrupt 1
{
TH0=0xdc; //定义50ms 正常值0xfe 0x0c ,修正值:0xfe 0x16;
TL0=0x00; //11.0592MHz晶振
if(Usart1.RxdDly)
{
Usart1.RxdDly--; //0.3S没有接收到数据,清0计数。
if(Usart1.RxdDly==0)
{
Usart1.RxdCnt =0; //记数清0.
}
}
}
C. 怎样检查单片机与电脑串口连接正常
可以通过我的电脑——属性——设备管理器——端口(COM)——USB SERIAL
如果能再端口里面看到USB SERIAL,就说明串口与电脑连接正常。
具体如下:
1.
如果串口连接了,缺看不到,可以这样:
下载驱动,安装好驱动程序,重新连接一下电脑。(安装驱动的时候不能拔除串口连接)(要选择正确的版本,有的驱动是XP的,有的是WIN7等)。
换一条串口线。
一般这样就行了(图例用的是STC12C5A60S2的USB转串口的,一般串口也差不多)。