本人在用STM32F103ZET6的一块开发板学习中,
目前在用串口收发数据,突发奇想 看看收发的数据在传送过程中是怎么传输的。
因此我把示波器的探头夹在了板子串口收发的引脚上,用板子给电脑发送十六进制数。
通过示波器我看到了高地电位的变化,也就是二进制的波形,
我将波形记录下来,与我程序中所发的十六进制数对比,
例如:我在程序中发送0x01 ,0x0F 这两个十六进制数,而在示波器上看到的则是
1 0111 1111 001 0000 1111
通过对划线部分按位取反,
也就是将0111 1111 与 0000 1111 按位取反得到 1000 0000 与 1111 0000
再分别从后往前写得到 0000 0001 与 0000 1111
换算成十六进制 即为 0x01, 0x0F
这也是我在串口助手上接收窗口里看到的数。
我的串口设置是:波特率2400 数据位8 停止位1 校验位 无
现在我想请问各位高手,我所发送数据所显示出的波形中,
第一个1 是什么意思?
两组8位中间的 001 又是什么意思?
有没有什么串口监控软件可以取代示波器,直接在电脑上看到串口发送的所有二进制的数呢???
串口发送的原理分析一下,有没有起始位,停止位,校验位呢
回复 板凳 tiankai001 的帖子
刚才根据串口发送的原理分析了一下,我测到的波形是通过MAX232芯片转换过的电平,都是反转的。所以我明白了第一个1 即为0(起始位),中间的001即为110 (第一个1为停止位,最后那个0为下一帧的起始位,但是第二个1又代表什么呢?我设置的停止位是一位啊,怎么会出现两个呢?)
还有请问用什么软件可以直接检测到串口收发的二进制数据呢,我用过一个叫AccessPort的软件,只能直接看到十六进制的数,那些停止位 起始位什么的都看不到。。。
停止位 起始位看不到是正常的得用示波器才看到停止位 起始位是給串口接收器看的