标签:mamicode 如何 start color com height top col ttl
一、框图
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 }
标签:mamicode 如何 start color com height top col ttl
原文地址:https://www.cnblogs.com/sbtblogs/p/13336763.html