完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,伙计们,我需要用PIC16F1834来使用I2C。我使用MPLAB X和XC8。当我在这个问题上的时候,它会生成几张。我Google,浏览论坛,我研究了PIC16F1834的PDF。你能帮我吗?我不知道在哪里搜索。我有一个用PIC18F4550验证过的源代码,但是我没有成功地将它改写为PIC16F18344。我使用i2c的默认引脚。我认为问题出在in it_i2c()中。代码验证18F4550:PIC16F18344的缺陷代码:我使用Mplab sinc1个月,我不知道所有的例行公事。如果你有一个更容易的解决方案,那么我愿意尝试。谢谢你的帮助。Raydius,最好的关心。
|
|
相关推荐
11个回答
|
|
|
“等待”通常在*操作之后更好地放置,但是它可能仍然工作。可以用范围检查行吗?什么工作不准确?
|
|
|
|
|
|
嗨,数字输入缓冲器?虽然18F4550设备有一个PBADEN配置寄存器位来禁用PORTB上的所有模拟特性,但是16F18344设备对于每个IO端口都有单独的ANSELx寄存器。
|
|
|
|
|
|
PIC16F1834具有PPS。这就要求外围设备的信号通路必须配置在PPS寄存器中。在数据表的PPS部分中可以了解更多关于这方面的信息。I2C外围设备也是PPS的特殊情况,因为输入和输出路径都必须配置为相同的管脚。对于您的情况,可以这样做的命令如下:在配置PPS时还要考虑其他事项。作为安全措施,可以锁定PPS寄存器。锁定和解锁寄存器是用解锁序列完成的。作为进一步的安全措施,有一个配置位,防止一旦锁定第一次就解锁PPS。这是配置寄存器中的PPS1路位。有关这两方面的更多细节,请参阅数据表。
|
|
|
|
|
|
坦克队员,(MysIL)我已经把PI2C放在数字上了。谢谢。(DAROGO)我在操作后放置了“等待”,我已经尝试了LATX。我离开了Poxx,因为它运行在PIC18F。谢谢。(WB)我必须尝试你的配置线,但我看不出任何功能。我研究了寄存器SSP1方式,但我不理解它的功能。我可以告诉你这是可行的。谢谢。我插入了“SDA”和“SCL”的范围。它们都是5V的。我只参加I2C项目,我会看到的。如果你有一个新的想法!
|
|
|
|
|
|
我的PORTX建议只是一个通用签名,但我仍然强烈建议使用LATX!RMW错误可能随时攻击你…
|
|
|
|
|
|
@ Raydius:如果你看不到RB4或RB6的活动,那么我怀疑数字输入缓冲器被禁用了。要么按照MysIL建议,要么把它添加到初始化:我验证了PPS配置设置是正确的。请参阅我的设备上的I2C数据的附加范围拍摄。我还建议使用SSP中断标志而不是RNW位。这将改变您的等待程序如下:
|
|
|
|
|
|
@WB:我的寄存器ANSELB=0x00;我试过SSP1IF的等待,它总是在“0”中,然后我的程序被锁定在等待中(我刚刚用PIC16F18344、24LC128(EEPROM i2c)和2k2的两个电阻重新做了一个模型。我试过“MPLAB代码配置器V3”,我运行了初始化,并且做了一个whILE AVEC一个I2C启动和一个I2C停止由引脚RB4和RB6在“1”,我疯了。3个星期以来,我一直在研究这个问题。你能像你看到的那样让一个程序初始化吗?拜托,我可以带一个PIC18F,我想知道哪里有问题。
|
|
|
|
|
|
这是因为I2C操作没有成功完成。这说明了为什么在等待例程中包含超时特性总是比较好。MCC仍然相对较新,并且有很多bug。您确实需要研究生成的代码,以确保生成的代码是正确的。你受够了。这里是4个部分的测试代码。代码只是发送一系列的启动和停止,就像你已经尝试过的一样。一旦您满意了,然后尝试其他例程。第1部分:configurationPart2:Main header filePart3:I2C header filePart4:I2C例程文件的主例程
|
|
|
|
|
|
非常感谢这篇文章。我和PIC16F18345有类似的问题,工作了几个小时,没有乐趣。甚至在PPS上捅了一刀,但在第一次尝试的时候就放弃了。然后我从您的示例中添加了PPS代码,并且它们都开始工作。我阅读数据表来说RB4和RB6是I2C1的默认引脚,并且假设PPS不需要使用默认引脚。当然希望数据表更具体。
|
|
|
|
|
|
我不确定它会比表2注释1和第30.4.3节更具体。眨眼:
|
|
|
|
|
|
在克雷维德韦勒的辩护中,我同意细节很容易被忽视。表1注释1表示它是默认的外围输入。注释2适用于所有的引脚,但是可以忽略,因为默认输入在它们旁边没有一点(2)。在每一个默认输入上没有(2)的情况是它增加杂波,因此更混乱。其中包含的事实是,它使人真正阅读了注释。我认为在此情况下的折衷方法是将(2)添加到每个双向默认输入的注释列表中,以强调默认值只是解决方案的一半。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
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 19:08 , Processed in 0.818250 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2218