5V单片机与3.3V单片机串口通信问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5V单片机与3.3V单片机串口通信问题相关的知识,希望对你有一定的参考价值。

买了个串口继电器模块,是STC的芯片。直接的一块板子是430,3.3V的。现在的问题是2个板子不能通信。不懂为什么。2个板子都有9针口,转换芯片是sp3232,另外一个是sp232。为什么不行。从正面解决。别的方法我也有。

5V单片机与3.3V单片机串口不能通信,是设置错误造成的,解决方法如下:

1、首先51单片机的可用内存只有00H~7FH,堆栈指针设置在60H,则堆栈的大小就是60H~7FH。这算是有规定大小的。

2、堆栈主要是为子程序调用和中断操作而设立的,因此对应有两项功能:保护断点和保护现场。

3、单片机的程序归根结底是个死循环,反复在执行Main函数(主程序)。

4、可以只写一个函数Main,那么这个函数随着功能的增多而变得异常大,而且非常不具备可读,这个时候就需要子函数(子程序)了。

5、主函数在调用完子函数后会返回到主函数中,这样就可以调用其它函数并且继续这个死循环。

参考技术A

    遇到这种界面问题,首先必须确认两个板子上的TXD/RXD/GND  若用到CTS/RTS当然也要

     确认,确认它们的输出电压.(若是标准RS-232信号,那就确认两块板子的RXD/TXD对接

    就是1板子的TXD接2板子的RXD.....),有时候板子上输出的是TTL电压(5v/0v),串口标准电压

    是正负12v

    一般拿出来卖的功能应该是有的,具体就是你怎么用?

    sp232是标准RS-232D界面,要加正负12v电压。sp3232的电压是3v-5.5v 也就是0v-3.3或5.5v

    两个当然不能直接接在一起。你看看是不是这个问题!

     

本回答被提问者采纳

1单片机io模拟串口发送

一、框图

1、单片机不能直接与

技术图片

1、单片机不能直接与电脑端进行通讯,两端的电平标准不一样
(1)pc端遵循的323电平,-12V左右表示的是高电平,而+12V左右表示的是低电平
(2)单片机端遵循的是TTL电平,5V表示高电平,0V表示电平
2、如何解决单片机和pc的通讯?
(1)可以通过SP232或MAX232转换芯片进行解决
(2)另外一个问题,现在大多笔记本电脑都没有串口,而只有usb接口,那么我们可以用CH340G、PL2303、CP2102或FT232等芯片解决,上图就是通过CH340芯片进行解决的

 

二、串口发送时序图

技术图片

1、如上图所示为8位UART协议格式
(1)一帧信息总共10位
(2)开头一位是起始位(start bit),最后一位是结束位(stop bit)
(3)中间8位是数据位(低位在先)
(4)脉冲的宽度是由波特率决定的,例如波特率位1200,则脉冲宽度为1/1200s,大约为833us

三、代码实现

 1 /********************************************************
 2 // 函数名称:UART_Send_Char(用IO模拟串口协议)
 3 // 输入参数:uartData
 4 // 输出参数:无
 5 // 函数功能:发送一个字节
 6 // 注意:延时用定时器延时(时序更准),不要用软件延时
 7 ********************************************************/
 8 void UART_Send_Char(unsigned char uartData)
 9 {
10     unsigned char i;
11     uartTXD = 1;            //单片机TX引脚拉高
12     uartTXD = 0;            //start bit
13     Delay883us();           //延时一个脉冲的时间(对应1200的波特率)
14     for (i=0;i<8;i++)
15     {
16         if(uartData & 0x01)
17         {
18             uartTXD = 1;
19         }
20         else
21         {
22             uartTXD = 1;
23         }
24         uartData >>= 1;
25     }
26     uartData = 1;            // stop bit
27     Delay883us();    
28 }

 

以上是关于5V单片机与3.3V单片机串口通信问题的主要内容,如果未能解决你的问题,请参考以下文章

5V单片机与3.3V单片机串口通信问题

准备用PIC 3.3V的单片机通过串口与电脑通信,采用RS232芯片进行转换,请问:1〉RS232的供电是5V吧!

教你如何在51单片机上模拟串口通信!!!

51单片机一般5V电压,他的串口232接5V,ARM一般用3V电压,他的串口232也是3V,要让51同ARM使用串口通信。

单片机与DWIN屏串口通信时,单片机能与电脑通信,屏能与电脑通信,而单片机与屏不能通信。不能通信是为什么

单片机是5v,蓝牙模块是3.3v,哪种max232可实现这俩个间的电平转换 ? ...