完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
再一次,我在这里。伙计们,在解决了PIC18F2550中的延迟问题之后,我开始重写我所有的工作库,从16F到18F。但是当我写了一个程序来读取24C64内存(I2C)并通过EUART将数据发送到PC时,什么也没用。所以我打破了I2C部分和EUART部分的代码,猜猜怎么了?两个都不工作,EUARtit在部分工作。正如你在代码中看到的,它现在只不过是一个焦镜。我的RS232->TTL转换器在我从PC发送数据时闪烁Rx和TxLED,但是取而代之的是返回正确的字符,有时我有一个垃圾。除了ABD之外,这个库正在使用PIC16F。我阅读了数据表,更改了公式和寄存器,但是仍然很奇怪。即使我使用ABD或定义波特率,我也可以以任何速度获得“随机”字符。它是PIC18F2550@ 20MHz晶体振荡器。我用的是XC8。h头是第二个代码。修复EUART我将讨论I2C(在本例中没有工作)。再次感谢您花时间帮助我。
|
|
相关推荐
8个回答
|
|
您需要错误处理。而且,我从不相信太多的AutoBod,但是…
|
|
|
|
好,即使我手动设置波特率,我得到正确的字符,随机字符,甚至没有!如何实现错误处理?
|
|
|
|
你可以看看数据表或者搜索这个论坛:或多或少有点像:
|
|
|
|
那么,我的代码没有错吗?是PIC18F EUART模块的错误吗?
|
|
|
|
重点是,如果你收到一个错误的字节,而你没有意识到这一点,你会看到“垃圾”,所以…试着加入这个部分。当然,它们不应该在正常的过程中发生。超支是指当你没有阅读正确的字符时。框架通常是波特率误差。
|
|
|
|
在查看代码之后,我发现一些变量是无符号字符,其他变量是字符。使所有的字符或无符号字符,错误几乎消失,现在,或我“ping”正确的字符或PC收到0(不是十进制,但值=0)。我在想办法看看问题是从PIC接收的数据还是发送的数据。再次:为什么我在16F876A使用相同的代码而没有错误,而PIC18F2550使用相同的代码,它具有“增强”的UART模块I,其中充满了错误?这太讨厌了!P:现在,除了亚洲开发银行,它还在运作。如果我设定波特率,一切都很棒!但ADB似乎计划一些波特率误差较大。
|
|
|
|
Nemweb:已经一个星期了。你还有问题吗?我假设您所发布的代码是当前使用的代码。在设置ABDN位之前,必须启用串行外设(SPEN=1)。移动一条线应该纠正这个问题。还有一件事。很少有需要16位波特计数器和高速波特率的情况。我建议清除BRGH位,所以在一个比特周期中有16个波特时钟,而不是4个字节。下面是建议的代码更改:
|
|
|
|
谢谢,WB!ABD是我唯一的问题。其他事情都在起作用,因为我真的发现ABD不是什么重要的事情,所以我决定不去理会它。但是谢谢你的帮助!现在,我强烈需要帮助I2C(我张贴的其他主题)。
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
777浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
676浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:38 , Processed in 1.582970 second(s), Total 89, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号