开启辅助访问 切换到窄版

打印 上一主题 下一主题

单片机硬件设计:单片机IO口无法输出高低电平原因分析

[复制链接]
作者:BT123shine 
版块:
MCU单片机技术 单片机入门及综合应用 发布时间:2018-6-28 02:05:38
11300
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在用LPC11C14单片机,该单片机是32cortex-M0系列的,带有片上CAN资源,既可以使用寄存器编程,也可以使用库函数(CMSIS)来编程应用方便。其下载方式有两种:

  • SW方式;

  • ISP方式;
对于LQF48封装而言,调试口分别为:

  • 29脚:SWCLK;
  • 39脚:SWDIO;

这个两个引脚可以复用,在项目设计中到了29脚,将该引脚用作了GPIO输出脚,在用库函数调试的过程中发现时钟无法控制输出高低电平。而用寄存器版本就可以输出高低电平。花了好长时间终于找到了原因。
下面先看寄存器版本编程时使用的头文件代码:

再看CMSIS提供的库函数的头文件:

从头文件的对比已经发现了问题,寄存器版本的头文件P0_10的地址是68结尾,而CMSIS中P0_10的地址是70结尾,翻看LPC11C14的数据手册可以发现其地址为:0x40044068,显然CMSIS提供的头文件错了。将CMSIS头文件修改后,P0_10就可以正常使用了。
本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。
公众号:micropoint8。嵌入式学习网_振兴网:www.picmcu.com

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表