LPC1114关于IOCON模块时钟打开又关闭的疑问

立创EDA,中国自主研发的PCB设计工具,免费使用!云端设计!

某同学:你好,看了基础篇SysClk、GPIO、UART的例程,在用到IOCON模块,UART模块在SYSAHBCLKCTRL寄存器中都需要相应时钟允许位置1,IOCON使能,在设置完后又禁能,UART使用时只使能,不用禁能。而使用GPIO时,相应的允许时钟位没有置1,不明白。

瑞生:IOCON模块的作用是什么?

瑞生:答:是改变IO的功能

瑞生:改变了IO的功能以后 ,程序运行过程中就不需要改变IO的功能了,所以就关了时钟省电

瑞生:比如某个引脚,本来是GPIO,我在项目中,要用这个引脚的ADC功能,那么把这个引脚初始化为ADC功能以后,就不需要改变IO的功能了,所以关了IOCON时钟省电

瑞生:能明白不?

瑞生:在用使用UART通信,所以我们需要一直把UART时钟打开,关了就不能通信了

瑞生:你关了IOCON模块时钟,只是不能在改变IO的功能了,如果想改变IO的功能,再开了时钟,改变以后再关了

瑞生:GPIO时钟,一上电,默认就是开的,所以我们程序中不需要开

瑞生:如果你的项目 不怕费电,不用省电,你可以把所有时钟都开了,不用关闭

瑞生:如果你的项目 是电池供电,需要省电,就把所有不需要的时钟都关闭了

某同学:“你关了IOCON模块时钟,只是不能在改变IO的功能了”你的这句话我在想想,想不通再请教。

瑞生:各个模块,如果要使用,就要把对应的时钟打开,有的默认是开着的,有的默认是关着的,明白不?

各个模块

某同学:明白了

瑞生:比如你要设置引脚P0.2的功能,是不是需要打开IOCON模块对应P0.2的寄存器定义?

某同学:

瑞生:按照寄存器,选择好功能,再把IOCON时钟关闭,如果不想关,可以一直开着
IOCON_P02

REGP02

 

某同学:明白了

瑞生:好的


关注我的微信公众号,可以第一时间看到我的文章

微信公众号科技老顽童