完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
2812串口的接收和发送都有16个字节深度的FIFO,这个FIFO可以启用或者关闭,接收和发送都有5位来指示FIFO现存的字节量。
同时2812的串口还有通常串口常见的标志位,例如TXRDY和RXRDY等等。 问题出现了,发现2812是这样的,当你开了串口的FIFO功能时候,TXRDY和 RXRDY的标志位功能失效了,即,当接收到字符的时候(假如1个),开了FIFO功能,这个时候,RXRDY不指示满(此位不为1),而FIFO的TXFIFST会等于1;发送也一样道理。 而当你关闭了串口FIFO的时候,接到字符,RXRDY就会置1了,但是TXFIFST没反应了。 所以,根据以上,假如要用串口的话,用查询的方法,就要根据FIFO是否开启,来查询不同的标志位了(例如接收,开了的话查RXFIFST是否大于等于1,关了的话查RXRDY)!假如用中断的方法的话,就要注意在串口的寄存器里面开哪个中断了,假如开了FIFO,就要开FIFO中的匹配中断;假如关了的话就要开Tx INT ENA等中断位,当然,两边的中断都开也可以的。 看上面,FIFO打开了,接收FIFO里面有一个字节了,但是RXRDY不置位,此时,由于FIFO匹配中断没打开,中断服务程序也不会进入了。 接收的查询用:while(ScibRegs.SCIFFRX.bit.RXFIFST != 1) [ ] 发送的查询用:while (ScibRegs.SCIFFTX.bit.TXFFST != 0) [ ] 这里,FIFO关闭了,RXFIFST就不会增了,但是RXRDY置位了,同时,中断也进去了。 接收的查询用:while(ScibRegs.SCIRXST.bit.RXRDY !=1) [ ] 发送的查询用:while (ScibRegs.SCICTL2.bit.TXRDY != 1)[ ] 看上面,datasheet里面这个表也很清楚了,开FIFO和关FIFO,中断的标志位是不一样的。 这个笔记记在OneNote里面好久,这次正好拿来交流一下,呵呵~~~ |
|
相关推荐
5 个讨论
|
|
|
好了,开始字体被我设置为wingdings了(因为那个下拉菜单没有中文字体),在firefox下也正常显示,就不管了。刚刚被你提示,就到ie下看,果然是乱码。不得已,自己编辑html,改成宋体了,现在应该是正常的吧。(至少我这边ie和Firefox都正常了)。 吐槽一下:网站这个发的帖排版好差啊,颜色怎么是灰色的,字体怎么设置也不好看。行距也太小了。 |
|
|
|
|
|
|
|
qq967873880 发表于 2020-6-16 08:44 好帖子,很有信息量! |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:10 , Processed in 0.987585 second(s), Total 56, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
319