设计与开发

单片机io电平 单片机IO口不能输出高电平

小编 2024-10-09 设计与开发 23 0

单片机IO口不能输出高电平

今天在做单片机项目时遇到了一个这样的问题,所用的单片机是PIC的,但是IO/P3.3口不能输出高电平。(PIC的叫RC3)

这次用的板子是别的公司的,最开始给它烧我们的程序,单片机每一个引脚都可以按照程序执行,因为后来需要用到延时,而最开始的时钟频率不便于计算延时,于是我在原有的程序上加了内部时钟的频率,选择的是4M,因为PIC单片机每4个时钟周期运行一条指令,这样便于计算时间。

IO口不能输出

按照上述方法执行之后,结果尽不如人意,这时候PIC单片机的IO口竟然连高电平都不能输出,怎么办呢?最开始是怀疑单片机的问题,于是用相同的程序给另外一块板子烧进去,结果还是一样的,之后试过很多办法都一样的结果,即使把时钟的配置去掉之后,IO口还是不能输出高电平,怎么办呢?好在我们这现在来了一位外聘专家S,他是属于大师级别一类人,尤其是对于PIC单片机。

AD采集

我把问题复述给S,他第一句话问我关AD采集了吗?我说,没有开AD采集啊。因为之前用的单片机没出现过,这次最开始编程的时候就没有注意这个AD采集,最后我把RC3上的AD采集口关掉之后,单片机又可以完美的输出高电平了。

专家就是专家,看待问题总能命中要害,这一点我的道行还很薄,同时我所需要的是去闭关沉淀。

写这一篇文章主要给给自己共勉,以后少犯类似的错误。

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

最近在用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

相关问答

单片机 怎么定义低 电平 ?

定义单片机低电平,首先单片机是输出TTL电平的,单片机IO可以通过软件控制输入和输出,可以输出高低电平,意思就是让单片机IO输出高电平就是5V低电平就0V;例如一...

单片机 的管脚是怎么控制高低 电平 的? - 懂得

如楼下所述,单片机内部是由一个场效应管控制io的高低电平状态,而场效应管的输入端是一个内部的锁存器,锁存器则直接由cpu控制,因此程序里对io口的操...

51 单片机IO 口可以接高 电平 吗?

51单片机的IO口当然能接高电平,但首先要保证高电平的电压值不超过单片机引脚的电压容限,一般IO能承受的高电平电压是Vcc+0.2Ⅴ。另外,IO口必须配置成高阻输入...

51 单片机io 口输出电压?

51单片机是一种常见的微控制器,它的IO口可以通过设置输出状态来控制输出电压。在51单片机中,IO口的输出电压可以分为高电平和低电平两种状态。当IO口设置为高...

单片机io 口没有设置时是什么 电平 ?

单片机io没有设置时呈高电平,即初始化时各相应的io端口呈高电平状态。如果要用初始化电平起动负载,这是不能的,要因初始化电平呈高阻态。单片机io没有设置时...

关于 单片机IO 电平 被拉低,重烧程序后恢复正常,是什么原因造成的?

你所说的“时好时坏”,是指同一块线路板在不同的运行过程中有可能出现故障现象,还是说同一批线路板在相同工况下有可能出现故障现象?有没有试验过IO口的交换?...

51 单片机 的各个引脚输出高低 电平 的时候电压和电流是多少?能够带动4个或者是8个ttl负载是什么意思?

51单片机输出低电平驱动能力很强,至少可达20mA~50mA。高电平驱动能力很弱,电流在5mA以下。带动4~8个TTL负载是指一个输出类的IO口可与4~8个TTL的输入引脚相连...

怎么提高 单片机IO 口输出电压?

对于51单片机,P0口无上拉,可以另接高压电源,输出高于5V的高电平,对于3.3V供电的STM32,由于其多数IO口可以承受5V的电压,因此也可以通过上拉电阻接5V电源,从...

最近做一个 单片机 设计,用AT89S52接5伏电源后发现P2.3输出1.6...

可以用一个三极管来驱动,也建议采用那种方式,因为TTL系列的灌电流(引脚输出低电平)远比拉电流(引脚高电平)要大,大概是是十倍的的关系,记不太清了!不过很遗憾...

stc89c52的 io 口高 电平 多少?

stc89c52单片机io口高电平电压依端口配置、电路结构和负载轻重有所不同。1、准双向口配置:当无外部上拉电阻时,空载电压接近VCC,负载电压=VCC-0.00024*R(R...

猜你喜欢