完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,伙计们!我使用的是PIC16F1709、XC8、MPLAB X、Xbee系列1中的两个备选方案(与此不太相关)和一个pickit 3。所以我试图处理RX引脚接收的数据,我已经使用芯片上的PPS模块重新映射了这些数据。我向设备发送数据,触发RCIF中断,然后将RCREG中的数据写入变量(“GENRC”-general RC),以便清除标志,然后从TXREG发送数据以检查其正确性。唯一的问题是,芯片似乎有一个“K”的启动值(我确实有RX引脚拉高,这是正确的吗?)所以,当我使用arduino终端发送“A”到RX引脚时,它打印出“K”,只是输出了一点“y”,上面有两个点,似乎是一个假字符,我经常看到波特率不匹配,但我不确定这里就是这种情况。欢迎。我的ISRmy配置相关pps函数TheImp.ntPart,其中打印了GENRC变量,还打印了'W',我只是用这个“我要疯了吗?”如果我错过了什么
|
|
相关推荐
19个回答
|
|
|
记得要写信给LATX寄存器,因为你的PIC应该有它们。
|
|
|
|
|
|
你的代码在回应RCREG值之前发送一个“W”。“W”是OK,还是被破坏了?你的PIC跑得有多快?只需发布代码片段,而不是完整的程序,就不可能检查您的计算。
|
|
|
|
|
|
嘿,各位,谢谢你们的回复,DarioG,我一直想更好地掌握LAT寄存器有一段时间了,它肯定在名单上,谢谢朋友!ric,对,W’通过得很好,变量GENRC也运行得很好,从那时起,我移除了GENRC与USART模块之间的所有连接,设置为等于“B”,B通过我的串行监视器很正常,所以问题在某种程度上介于字母之间,例如“A”ente按下RX引脚,从RCREG写入GENRC变量,值得一提的是,RCREG似乎从某个地方拾取了字母“K”,虽然它让我烦恼,但它可能有些用处,“k”也挺好的,这似乎是来自RCREG的神秘数据……那么,为什么当我亲自设置RCREG时,数据出错了?我正在运行1MHZI,如果你愿意,可以发布完整的代码,我只是想避免让人们离开。
|
|
|
|
|
|
这并不困难。永远不要写端口寄存器。例如,CeleToNoT确保您的意思是“亲自设置RCREG”。该寄存器是只读的。首先删除与问题不相关的任何东西,并确保问题持续存在。直到您能够正确接收之后,我才避免使用中断。
|
|
|
|
|
|
干杯,我会尽快的把lat的东西整合起来,做一些阅读,这样我就可以试着避免愚蠢的错误:)我的意思是,当我使用串行监视器向RX引脚发送数据,从而设置RCREG时……这个奇怪的默认值“K”在启动时似乎一直出现,我并没有考虑个人问题,因为我和它没有任何关系,哈!...对,完全同意“删除所有未涉及的”这句话,但令人遗憾的是,中断似乎是问题发生的地方,尽管我昨天花了一段时间确保ISR本身正常工作。我已经检查了数据到达RX引脚本身是否正常,所以它正在“进入”芯片.。当来自RCREG的数据被写入变量时,问题似乎出现了,将写入变量,因为RCIF标志清除了,但是当我试图打印变量时,它出来损坏了,这是否与数据类型有关?
|
|
|
|
|
|
更改GENC的定义,从字符GENRC='B';到易失性无符号字符GENRC='B';在中断内修改并在中断外读取的任何变量都必须标记为"volatile"。
|
|
|
|
|
|
只是一个想法,是由BRG为两个RX和TX产生的波特率,只是认为我打印出来的坏字符,我前面提到,看起来像错误的波特,但是,我检查他们进入芯片的RX引脚与阿杜诺…我用同样的设备发送它们,所以当然它将“A”字清晰无误,没有损坏,它只是发送它并把它收回,我很难在数据到达RCREG之前看到芯片内部实际发生了什么:/
|
|
|
|
|
|
好了,欢呼,伙计,站起来……我担心我的数据仍然是一个小写的“Y”,上面有两个点…“W”仍然是好的:虽然……仍然有用的信息!我可能很快就要睡觉了,不知道你从哪儿发帖,但是大约凌晨1点,我在6.30起床:)把小小的“y”通过一个ascii转换器,不管我输入的是什么数据,我都能返回194191,我肯定与数据类型有关,我不认为波特率是issu。从我可以看出,BRG是共享的ACROS TX和RX,并且TX是好的:
|
|
|
|
|
|
FY:Y上有2个点是0xFF或255在许多ASCII终端上打印出来的方式。戴夫
|
|
|
|
|
|
在我的化身之下的“位置”领域有一个巨大的暗示。现在是中午12点。
|
|
|
|
|
|
在我的化身之下的“位置”领域有一个巨大的暗示。现在是中午12点。
|
|
|
|
|
|
好的,戴夫,谢谢,我会记住的!
|
|
|
|
|
|
……所以,我想我已经清醒很久了,考虑到我花了近30秒的时间来拼写波动。今天早上醒来的时候我并没有感觉很敏锐,今天绝对不是一个细心的人,以防你碰巧发现我没有的东西:WIP甚至不能描述这个……晚安,谢谢你的帮助:
|
|
|
|
|
|
我想你应该这样做:可能对当前的问题没有帮助,但以后会咬你的。戴夫
|
|
|
|
|
|
工程变量也需要声明为易失性。为什么你的ISR延迟了1000个周期?
|
|
|
|
|
|
这并不是问题所在,但是……我不认为你正在正确地解锁和锁定PPS寄存器。查看数据表中的第12.4节(还要查看编译器用户指南,看看这里是否有_u builtin_xxx宏需要帮助——对于PIC16芯片从来没有这样做过)。但是请注意,PPS1WAY配置位设置默认值是为了防止锁定之后解锁。我的建议是不要触摸PPS锁定/解锁,直到您确定其他一切都正常,并且您已经准备好发货为止。苏珊
|
|
|
|
|
|
你是对的,有斑点的,谢谢!RE:另一个易失性变量:是的,谢谢,也更改了一个:)RE PPS:我在PPS上发生了一些奇怪的情况,我已经禁用了1way,因为我希望在运行程序时能够不断更改pps设置(从一个端口接收,发送到另一个端口,等等)我会查阅数据表和您提到的部分,因为有些东西我错过了,可能只是解决一些我一直在想的东西,欢呼!谢谢大家!
|
|
|
|
|
|
看起来您可能了解到这里的一些内容,它的数据表确实建议在设置和清除PPS锁时需要某种特殊的顺序,尽管示例是在汇编代码中,对此我完全没有经验……如果任何人阅读本文,以下内容概要如下很抱歉,我的意思是说,这1000个周期,很简单,数据出来腐败,如果我不…我知道这很粗鲁,这就意味着,也许在某个地方还有其他一些深层次的问题,我并不急于去寻找,但是现在,我正试图一次解决一件事:)对于任何希望解决自己问题的人来说,我所收到的神秘的“K”实际上是来自我连接的收音机,我只是没有计时,因为收音机回复“OK”,完全忘记了,根本不把“K”与这个联系起来,傻瓜!慢慢地意识到一些事情,但还没有解决它。
|
|
|
|
|
|
这应该在苏珊建议的CALFE中工作,你可以让PPS解锁。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:57 , Processed in 1.192277 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3644