完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人小白,今天看书的时候给了一个例程,如图
我看到了设定定时器但是没有定时器中断。后边解释说因为定时器的模式是方式1,自动重置所以中断里什么都不用做,所以不需要中断。但是我看了下如果没有中断那么这个定时器在这个程序里完全没有意义啊,只是一个人在那不停计时,其他地方也没有调用他。 按前文将的是应该用定时器来控制波特率,请问这是怎么控制的,谢谢大神。 |
|
相关推荐
6个回答
|
|
还有一个问题,我看串口通信读写全靠一个SBUF,请问这个SBUF内存是多大,好像REN=1后就默认不停处于接收状态,如果我一直不停给他传输数据那么SBUF会接收一个字符就把上一个字符顶掉吗?如果想吧接收的数据都存起来应该怎么做?数据都放在哪?
|
|
|
|
刚刚又想到了两个问题:
1.如果我同时设置了2个计数器,方式都相同就是初值不一样,那么他会按照哪个速率进行传输 2.定时器定波特率应该是从初值开始计数,每溢出一次就传送一位,但这个定时器是从初始化就开始计时了,不是从传输开始计时的。比如初值是240,传送第一位时已经计数到245了,那么他就不是按照预设的那个速率传送了啊 |
|
|
|
zs920918 发表于 2017-12-17 16:09 1.这是用定时器1做串口通讯的载波信号源,不需要开定时器1中断,只要开串口中断就可以了。一般应用只要会设置相关寄存器就行了,不必深究内部机理。 2.对于串口可以理解为是单片机的一个外围硬件,SBUF在物理上是两个8位寄存器共用一个地址,分别用于发送和接收。 3.如果想把接收的数据都存起来可以定义一个缓存数组保存SBUF接收到的数据。例如: void ser() interrupt 4 { static unsigned char num=0; RI=0; rec_buf[num]=SBUF; num++; if(num>=6) { num=0; flag=1; } } |
|
|
|
zs920918 发表于 2017-12-17 17:05 1.普通51芯片只能是用定时器1做波特率发生器,增强版51可以有多种选择,只要设置相关寄存器即可。 2.波特率(传输速率)与定时器溢出率相关但不相同,相差N倍。 |
|
|
|
串口的定时器是给串口做发送位的时间间隔做定时的,原理和用法跟普通定时器一样,只是计时溢出后不产生中断,而是给串口部分信号,这时的定时器相当与串口单元的时钟信号。
串口的SBUF是1个字节大小,跟串口的帧格式协议定义一致。 串口的定时器只能指定一个,不会出现使用两个定时器的情况,因为定时器的出口不一样,串口使用的定时器的出口是串口单元,普通定时器的出口是定时器中断。 串口定时器是自动重装载模式,所以在定时器溢出后,也就是串口每发送一位后,定时器的初始值都是重新设置的,等于一次全新的计时。 |
|
|
|
zs920918 发表于 2017-12-17 17:05 串口只使用一个定时器,是定时器1;你设置了定时器0,定时器0和串口没有关系,串口的波特率也是按照定时器1的; 定时器是从初始化就开始计时了,不是从传输开始计时的。比如初值是240,传送第一位时已经计数到245了,那么他就不是按照预设的那个速率。这样想是不对的,逻辑错误 而且波特率与定时器溢出数率之间的关系也不是一一对应的 ![]() |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-scp出现报错no matching host key type found. Their offer: ssh-rsa
593 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-ubuntu18.04通过网线共享网络
580 浏览 0 评论
593 浏览 0 评论
963 浏览 0 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡 - 如何在Ubuntu中编译OpenCV库(X86架构)
1502 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
9523 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-3 05:04 , Processed in 0.701217 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191