LPC11C14单片机为例分析IO无法输出高低电平的处理办法

LPC11C14单片机为例分析IO无法输出高低电平的处理办法,第1张

  很多人在使用单片机时,总是会面临一个问题,就是在单机片的运用过程中老是输出高低电平,这是为什么呢?下面小编就以LPC11C14单片机为例来为你解说单片机IO为什么无法输出高低电平的原因。

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

  SW方式;

  ISP方式;

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

  29脚:SWCLK;

  39脚:SWDIO;

LPC11C14单片机为例分析IO无法输出高低电平的处理办法,论单片机IO为什么无法输出高低电平的解决方法,第2张

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

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

LPC11C14单片机为例分析IO无法输出高低电平的处理办法,论单片机IO为什么无法输出高低电平的解决方法,第3张

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

LPC11C14单片机为例分析IO无法输出高低电平的处理办法,论单片机IO为什么无法输出高低电平的解决方法,第4张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2596775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存