发现的问题

在使用洋桃一号开发板测试U盘插拔时,发现洋桃电子官方例程对于Query376Interrupt();函数的疑问。
1,在CH376.h文件中#define CH376_INT GPIO_Pin_15
2,在CH376.C文件中如下定义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 );
}

出现以上两个问题,但是洋桃电子官方例程仍然能够正常运行。
经过测试:将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的官方例程以及沁恒电子论坛的。
疫情在家效率底下,然而本人又是碰到问题死磕的人,这个看似简单的问题花了挺长时间菜最终解决。这个问题也能让自己发现自身所存在的不足,特别是面对分析的分析能力和解决能力都有待提高。
这是第一次写博客,文笔不好,还望见谅!

stm32—洋桃一号开发板U盘测试相关问题相关推荐

  1. 洋桃技术支持0005:洋桃1号开发板上电不运行如何解决?

    洋桃技术支持0005:洋桃1号开发板上电不运行如何解决? 提问: 我购买的洋桃1号开发板,之前一直用的好好的,但今天插上电源发现没有反应,但核心板上的ASP指示灯是亮的.这是什么原因? 解答: 导致洋 ...

  2. 【洋桃一号板】关于洋桃一号开发板的一些小吐槽

    好久没有写博客了,刚好趁现在把嵌入式的相关知识点梳理一下,为了避免纸上谈兵,最好可以找一个开发板来进行操作,话说我手上STM32开发板还挺多的,正点原子,野火,硬石等,之前都是用的正点原子的战舰开发板 ...

  3. 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结)

    转载: 来源:www.armjishu.com 作者:jesse 我的另一篇文章:<STM32嵌入式入门必看之文章-----介绍非常详细!(学STM32的理由!!!!)>http://ww ...

  4. iTOP-4412开发板网盘资料介绍

    iTOP-4412开发板网盘视频资料内容如下: 01-烧写.编译以及基础知识视频 02-嵌入式Linux 视频 03-iTOP-4412 开发板硬件设计指导视频 04-Android 应用程序视频 0 ...

  5. SSD202开发笔记 | 01- 东山Pi壹号开发板快速上手(原厂SDK快速入门)

    本文中我使用Ubuntu 18.04,阿里源. 一.东山Pi壹号开发板 东山Pi壹号开发板是联合芯片原厂星宸科技一起推的最小Linux开发板: 主控芯片: 星辰科技 SSD202D 内置128MB D ...

  6. Hi3516开发笔记(一):海思HI3516DV300芯片介绍,入手开发板以及Demo测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121314575 长期持续项目技术分享,Shang业Di ...

  7. stm32 神舟3号 开发板 usb DFU 实现

    1.官网下载usb源码包, 2.神舟III号的MCU位f103ze 系列.打开压缩包,直接找到 Device_Firmware_Upgrade 文件包 MDK打开工程. 3.选择 stm3210E_E ...

  8. 1-神舟IV号开发板STM32F107VCT6资料包(已购买)\STM32神舟IV号视频教程\第26集 CAN通信实验\双CAN收发测试(STM32神舟IV号-库函数版)

    **1.开发板上:con1放在右侧~走电脑USB烧写器供电 JP3&JP5均接2&3 2.STLINK烧写器USB线连接电脑,串口2 232线先不连 打开项目工程文件** 设置好参数后 ...

  9. bme280 环境传感器开发板_盘一盘那些年我们常用的物联网开发板!

    来源:华为云社区,作者:星辰27,直接来源:华为开发者社区 众所周知开发板是物联网架构中的感知层智能设备,这类设备通常有芯片.通信模组.以及操作系统组成.当然不同的开发版在功能以及使用上可能存在着一定 ...

最新文章

  1. 调用实现天气预报功能android,Android编程实现获取新浪天气预报数据的方法
  2. 页面嵌套除了iframe还能用什么方法_CTF|有关CSP绕过的方法
  3. BoW词袋模型Bag of Words cpp实现(stable version 0.01)
  4. 操作系统:提升电脑开机速度的15个小技巧
  5. URI is not registered (Settings | Languages Frameworks | Schemas and DTDs)
  6. 京东淘汰“三类人”,近 18 万员工懵了?!
  7. sql怎么注销当前登录状态_4种方法教你获取Oracle数据库当前会话/进程的session id...
  8. 2008 r2彻底删除 server sql_sql2008完全卸载工具 彻底完全卸载SQL server2008
  9. 从酒店服务员到世界500强大数据工程师,月薪4K到年薪40W,我经历了什么?
  10. 信号处理:频域转时域
  11. MOSS系列之三列表和文档库[转帖]
  12. 最新!2016中国城市GDP排名出炉
  13. java 笔触类_Java-多种颜色/笔触手势,并在同一GestureOverl...
  14. [RelativeNAS] Relative Neural Architecture Search via Slow-Fast Learning
  15. java背单词软件_背单词的java小软件
  16. LeCun、Bengio等人联名发布:迈向下一代人工智能!催化NeuroAI革命!AI 迎来具身图灵测试大挑战...
  17. 学一点SQL注入基础
  18. PayPal收款后的注意事项(PAYPAL用户必看)
  19. 定期存款可以提前取出来吗_定期存款可以提前取吗 定期存款没到期怎么取出来?...
  20. 图的遍历(书本内容)

热门文章

  1. 华为pppoe拨号配置
  2. mysql 语句优化
  3. 超低功耗水气表GSM/GPRS无线抄表模块
  4. doc转docx文件会乱吗_word文档打开都是乱码?没关系,教你解决办法-docx文件
  5. 专注Windows的博客【2012年度IT博客大赛分类推荐】
  6. Android 基于dkPlayer实现抖音列表播放
  7. win8,win10简捷快速重装系统
  8. 在线PS,MATLAB,AutoCAD等软件
  9. matlab加工表面微观,车铣复合加工表面微观几何形貌仿真及切削参数分析研究
  10. 深度学习|卷积神经网络