当前位置:

OFweek电子工程网

可编程逻辑

正文

单片机IO口无法输出高低电平原因分析

导读: 从头文件的对比已经发现了问题,寄存器版本的头文件P0_10的地址是68结尾,而CMSIS中P0_10的地址是70结尾,翻看LPC11C14的数据手册可以发现其地址为:0x40044068,显然CMSIS提供的头文件错了。

  最近在用LPC11C14单片机,该单片机是32cortex-M0系列的,带有片上CAN资源,既可以使用寄存器编程,也可以使用库函数(CMSIS)来编程应用方便。其下载方式有两种:

  SW方式;

  ISP方式;

  对于LQF48封装而言,调试口分别为:

  29脚:SWCLK;

  39脚:SWDIO;

单片机IO口无法输出高低电平原因分析

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

  下面先看寄存器版本编程时使用的头文件代码:

单片机IO口无法输出高低电平原因分析

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

单片机IO口无法输出高低电平原因分析

  从头文件的对比已经发现了问题,寄存器版本的头文件P0_10的地址是68结尾,而CMSIS中P0_10的地址是70结尾,翻看LPC11C14的数据手册可以发现其地址为:0x40044068,显然CMSIS提供的头文件错了。将CMSIS头文件修改后,P0_10就可以正常使用了。

责任编辑:Witt
免责声明: 本文仅代表作者个人观点,与 OFweek电子工程网 无关。其原创性以及文中陈述文字和内容未经本站证实, 对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅 作参考,并请自行核实相关内容。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

X
X
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码: