完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
9个回答
|
|
|
我有一个问题,在dsPIC33FJ32MC202主I2C1不工作,甚至微芯片演示代码它成功地写第一个字节,这是设备地址到从设备,然后它挂入代码
|
|
|
|
|
|
您好,JautryIt看起来有些函数被更改为表现得与v1.06.02函数完全不同,等待字节传输完成的函数被更改为不等待,而是返回一个状态:bool DRV_I2C0_WaitForByteWriteToComplete(void)被更改为立即返回。Bythar可怕的方式开发一个软件,一个函数命名为等待,不等待!相反,应该使用反映已更改功能的不同名称创建一个函数:int DRV_I2C0_MasterWriteCheck(void)/*Mysil*//*Master应该执行与从属不同的检查。*/对于这些函数中的一些函数,一个简单的布尔返回值是不够的。至少要处理3个不同的情况。如果当前活动不能重试,则应执行停止信号。3:回到正方形,发生总线冲突,总线已释放。必须等待公交车空闲,启动信号必须再次完成。bool DRV_I2C0_WaitForStartComplete(void);在1.06中,这个函数确实检查了错误的标准,因此即使硬件没有准备好执行下一个操作,也返回了真正的函数值。除此之外,如果总线出现错误,它可能永远不会返回。bove,为了进行更好的测试,对其进行了改进,但是随后,它被更改为立即返回一个状态。取而代之的是:uint8_t DRV_I2C0_MasterStartCheck(void);/*Mysil*/同样在1.06.02中,有一些函数没有按照名称执行:bool DRV_I2C0_WaitForReadByteAvailable(void);/*wait*/而是:uint8_t DRV_I2C0_MasterReadCheck(void)/*Mysil*/Attached是我对1.06.02版本的备份以及我的更改和评论。
DRVIII2CYSTATICH H.TXT(6.33 KB)-下载320次 |
|
|
|
|
|
所以我应该坚持我的非驱动代码是我从中得到的。对于V1.07,代码模型仍在不断变化。我想在迁移之前我需要等待一点。
|
|
|
|
|
|
I2C的STATIC模型有一个缓冲模式,它是与动态驱动程序兼容的API,您不必担心I2C总线的细节。您需要为此启用中断。您可以迁移到1.07,但如前面提到的,在应用程序级别上执行驱动程序的阻塞。
|
|
|
|
|
|
在写完成之后,有一个单独的函数toread for for for for for for for for for for for for for ACK或NACK,因此可以用来确定将来的操作过程。这并不意味着完成开始条件。只有当公交车空闲时,它才意味着“开始”完成。你知道,像这样的“坏决定”会把人们从和谐中赶走。它以前工作得不好(如果有的话)。现在您有其他错误的函数名。我假设在帮助中有一个大警告,您应该忽略函数名(但是仅限于这里)。我假设等待这个发布的长时间等待是因为它将被正确地完成。您可以在DRV_I2C0_WaitForByteWriteToComplete中输入#error,以记录更改。您可能已经对两个fu进行了编码。名词。任何使用它的人都会想到它会阻塞。新的人试图在这里询问是否有非阻塞功能。因为为什么DRVIII2C0WAITFBYBETWORKTENTION()不等待?疯狂:
|
|
|
|
|
|
V1.06静态驱动程序有其自身的问题。错误的错误处理和检查错误位,看看是否完成了操作。我不确定它是否会在没有修改的情况下工作。
|
|
|
|
|
|
V1.0602静态驱动程序有其自身的问题。我同意NKurzman的观点。我确信没有修改它就不能正常工作。我之前附带的“drv_i2c_..c”是在大约一个月前用1.06.02和MHC的最新版本生成的,然后进行了修改。它是为I2C5生成的。它包含阻塞和非阻塞功能,但是我没有对阻塞功能做太多处理,因为我使用的主要是非阻塞……Jautry,在创建以前的代码时,实际上使用了什么版本的和声?我怀疑在“drv_i2c_..c”v1.06.02中引入的与1.06.01或更早版本的差异。您没有说明您是否用1.06.02重新生成了代码,还是尝试了我在前面消息中附加的代码。如果您确实使用了我提供的代码,我愿意维护它,直到它执行为止为止。预期的。一些阻塞“…等待…”函数有问题,比如在控制器实际准备接受下一个操作之前返回,或者如果出现问题,则进入无穷循环。对于阻塞函数,布尔返回值可以并且应该指示操作wa如果成功,则它们必须始终返回,即使未获得想要的状态。“true”表示操作已完成且成功,“false”表示所需的操作失败。在阻塞函数周围编写等待循环将带来无穷循环的风险:.(!对于非阻塞函数,通常有三种或更多种可能的结果:需要更多的时间,操作是成功的,或者操作失败。在应用程序代码中围绕非阻塞函数编写等待循环不会告诉操作是否成功。而(!)DRVIII2C0GMSTARSTATECK())不知道是否真的获得了启动条件。这可以用来检测问题。同时((ST= DVVII2C0GMSTARSTATECK())=0);如果(STA)!= 1){/*问题!*/}问候,Mysil
|
|
|
|
|
|
我刚刚发布了一些我在这方面的帮助。题目是“和声V1.07 I2C解决方案,在写后发送的幻像字节锁I2C总线”。
|
|
|
|
|
|
但它确实打破了现有的代码。NK的建议要好得多。如果你改变了一些基本的东西,就会导致构建错误。我们被教导在60年代,男人是男人,电脑用他们自己的权力。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:41 , Processed in 0.860062 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1278