谁和我说一下UART串口通信是如何接收发送数据的,while里面我这么编写, 下面是我的理解和问题
答案:4 悬赏:20 手机版
解决时间 2021-03-27 23:37
- 提问者网友:酱爆肉
- 2021-03-27 00:23
谁和我说一下UART串口通信是如何接收发送数据的,while里面我这么编写, 下面是我的理解和问题
最佳答案
- 五星知识达人网友:孤老序
- 2021-03-27 01:37
串口只有一条数据线一条地线, 所以数据是以串行方式发送的,所谓串行就是数据按bit位依次发送,如下图
除了数据本身外一头一尾加上起始位和停止位(通知接收端表示数据的开始和结束), 有时还有校验位(发送数据的奇偶校验码), 取决于串口的工作方式.
比如你在串口助手上发送字符串abc, 实际串口发送是发送字母a,再发送字母b,c等
再详细一点,字母a,二进制数表示是1100001, 发送它的流程是:
1)发送停止位
2)依次发送 1 0 0 0 0 1 1 (低位在前)
3)发送校验位
4)发送停止位
5)空闲
.....(下一字母发送)
追问恩,谢谢。那么接收后显示是什么时候进行的?是接受到a就立马以二进制格式发送出去了吗?先采纳了起。望指点,追答至于接收端的行为与接收端(下位机)的程序有关, 接收端的URT硬件接收到字符后存在暂存器,置标志位或者产生中断(如果允许中断的话), 提醒CPU来提取数据.追问谢谢了。帮助很大
除了数据本身外一头一尾加上起始位和停止位(通知接收端表示数据的开始和结束), 有时还有校验位(发送数据的奇偶校验码), 取决于串口的工作方式.
比如你在串口助手上发送字符串abc, 实际串口发送是发送字母a,再发送字母b,c等
再详细一点,字母a,二进制数表示是1100001, 发送它的流程是:
1)发送停止位
2)依次发送 1 0 0 0 0 1 1 (低位在前)
3)发送校验位
4)发送停止位
5)空闲
.....(下一字母发送)
追问恩,谢谢。那么接收后显示是什么时候进行的?是接受到a就立马以二进制格式发送出去了吗?先采纳了起。望指点,追答至于接收端的行为与接收端(下位机)的程序有关, 接收端的URT硬件接收到字符后存在暂存器,置标志位或者产生中断(如果允许中断的话), 提醒CPU来提取数据.追问谢谢了。帮助很大
全部回答
- 1楼网友:独钓一江月
- 2021-03-27 04:12
需要帮你做程序吗追问不需要,只是不太理解发送的过程,输入输出过程是怎么样的?追答好吧追问这里的执行一遍while(1)里面的函数,是只发送了一个字母吗?那么接收abcde就是执行while里面的函数五次才发送和接收完成吗?追答丘上说吧
- 2楼网友:往事隔山水
- 2021-03-27 03:35
问题难啊,你可以去恩山论坛求助,那里大神多,呵呵追问谢谢,其实csdn也不错追答恩山的热情点追问好的,谢谢,我去看看
- 3楼网友:洎扰庸人
- 2021-03-27 03:11
一位一位高低电平追问这个懂,但是……追答什么啊????追问因为一个字符串是无法发送的,所以只能一个一个发送,那么是接收一个字母,发送一个字母,再接收一个再发送吗?追答字符串我用的时候可以发送。这个和你用的芯片api有关
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯