TTL和232的区别

前一段时间调试一个传感器,是232电平输出,当时不清楚TTL和232的区别直接找了个usb对串口的转接线连接到传感器上面,发现始终获取不到传感器的输出数据。现在记录一下232电平和TTL电平的区别。

TTL电平是晶体管-晶体管逻辑电平的简称。规定输出高电平>=2.4v,输出低电平低于0.4v;输入高电平大于2.0v,输入低电平低于0.8v。允许的噪声范围是0.4v

RS232电平是串口的一个标准,采用负逻辑控制,(-15v ~ -3v)表示1,(+15v ~ +3v)表示0.

uart和usart的区别

研究stm32的时候发现stm32的串口有uart和usart两种模式的库函数头文件,不太明白两者之间的区别,查阅资料通过这篇博客做个记录。

从名字上面看:

UART表示:universal asynchronous receiver and transmitter通用异步收/发器
USART表示:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器

这里可以看出usart在总线上面增加了同步功能,也就是usart增加了同步时钟输出的能力。

C语言中#ifdef和#ifndef的比较

阅读C代码的时候会发现在有些地方会使用#ifdef有的地方会使用#ifndef,如何区分这两个。

#ifdef表示“if the following is defined”;#ifndef表示“if the following is not defined”。

根据上面的描述可以推断下面代码会输出:”one is defined “

Read More

git学习merge&rebase

git merge和git rebase 的作用都是从一个分支获取代码合并到当前分支,但是这两个命令采用不同的工作方式,在我前面介绍git基本命令的博客中( 链接 )提到,git merge代表合并指定分支到当前分支,git rebase 代表衍合指定分支到当前分支。一直不明白这两个的区别。查找资料写下这篇博客作为记录。

Read More