完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
发现的问题
在使用洋桃一号开发板测试U盘插拔时,发现洋桃电子官方例程对于Query376Interrupt();函数的疑问。 /******************************************************************************* * 描 述 : 查询CH376中断(INT#低电平). * 返 回 : **0:无中断. 1:有中断** *******************************************************************************/ u8 Query376Interrupt(void){ u8 i; i = GPIO_ReadInputDataBit(CH376_INTPORT,CH376_INT); return( i ); } 答疑之路 对于问题1,了解到GPIOA15是JDTI引脚,只能用于JATG功能;同时,在CH376端口初始化函数CH376_PORT_INIT中针对GPIO_Pin_8做了初始化。结合以上两点判断是例程错误,正确的应该是#define CH376_INT GPIO_Pin_8。 对于问题2,参照CH376官方提供例程,发现l两个Query376Interrupt函数返回值意义相同,同时在filesys.c中的处理情况也完全一致。 /******************************************************************************* * 描 述 : 查询CH376中断(INT#低电平). * 返 回 : FALSE(0):无中断. TRUE(1):有中断. *******************************************************************************/ UINT8 Query376Interrupt( void ) { UINT8 i; i = (CH376_INT_WIRE ? FALSE : TRUE ); /* 如果连接了CH376的中断引脚则直接查询中断引脚 */ return( i ); } 如果连接了CH376的中断引脚则直接查询中断引脚 */ return( i ); } 出现以上两个问题,但是洋桃电子官方例程仍然能够正常运行。 经过测试:将GPIO_Pin_15改为GPIO_Pin_8时,程序无法正常运行,即无法检测U盘插入。继续修改:将洋桃官方例程Query376Interrupt函数中的语句修改为i = ~GPIO_ReadInputDataBit(Int_Port,Int_Pin);程序恢复正常。 问题解决 解决方法: 1,将洋桃电子例程#define CH376_INT GPIO_Pin_15修改为#define CH376_INT GPIO_Pin_8。在这里,之前的错误程序能运行的原因便是,CH376_INT引脚也就是GPIO_Pin_15总是保持高电平,而调用Query376Interrupt函数的时候就是返回值为1的,也就是GPIO_ReadInputDataBit读出的高电平,这里的凑巧确实让人哭笑不得。 不知道杜洋老师当时是不是只为了程序能够执行出来,而没有仔细检查。 2,在分析了以上情况之后,将Query376Interrupt函数中的 i = GPIO_ReadInputDataBit(CH376_INTPORT,CH376_INT); 修改为: i = ~GPIO_ReadInputDataBit(Int_Port,Int_Pin); 最终程序完美运行,但是,不要忘记插上PA8与USB INT之间的接线帽。 总结反思 在STM32的依样画葫芦阶段,还是要敢于提出质疑,老师也是人,也会有错误的地方,这个时候就要我们相信自己了。同时,还可以寻求更加官方的帮助,也就是CH376的官方例程以及沁恒电子论坛的。 疫情在家效率底下,然而本人又是碰到问题死磕的人,这个看似简单的问题花了挺长时间菜最终解决。这个问题也能让自己发现自身所存在的不足,特别是面对分析的分析能力和解决能力都有待提高。 这是第一次写博客,文笔不好,还望见谅! |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
328浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:45 , Processed in 1.095600 second(s), Total 51, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号