LPC1114关于IOCON模块时钟打开又关闭的疑问
扫描二维码
随时随地手机看文章
某同学:你好,看了基础篇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时钟关闭,如果不想关,可以一直开着
某同学:明白了
瑞生:好的