LPC1114關(guān)于IOCON模塊時鐘打開又關(guān)閉的疑問
某同學(xué):你好,看了基礎(chǔ)篇SysClk、GPIO、UART的例程,在用到IOCON模塊,UART模塊在SYSAHBCLKCTRL寄存器中都需要相應(yīng)時鐘允許位置1,IOCON使能,在設(shè)置完后又禁能,UART使用時只使能,不用禁能。而使用GPIO時,相應(yīng)的允許時鐘位沒有置1,不明白。
瑞生:IOCON模塊的作用是什么?
瑞生:答:是改變IO的功能
瑞生:改變了IO的功能以后,程序運(yùn)行過程中就不需要改變IO的功能了,所以就關(guān)了時鐘省電
瑞生:比如某個引腳,本來是GPIO,我在項(xiàng)目中,要用這個引腳的ADC功能,那么把這個引腳初始化為ADC功能以后,就不需要改變IO的功能了,所以關(guān)了IOCON時鐘省電
瑞生:能明白不?
瑞生:在用使用UART通信,所以我們需要一直把UART時鐘打開,關(guān)了就不能通信了
瑞生:你關(guān)了IOCON模塊時鐘,只是不能在改變IO的功能了,如果想改變IO的功能,再開了時鐘,改變以后再關(guān)了
瑞生:GPIO時鐘,一上電,默認(rèn)就是開的,所以我們程序中不需要開
瑞生:如果你的項(xiàng)目 不怕費(fèi)電,不用省電,你可以把所有時鐘都開了,不用關(guān)閉
瑞生:如果你的項(xiàng)目 是電池供電,需要省電,就把所有不需要的時鐘都關(guān)閉了
某同學(xué):“你關(guān)了IOCON模塊時鐘,只是不能在改變IO的功能了”你的這句話我在想想,想不通再請教。
瑞生:各個模塊,如果要使用,就要把對應(yīng)的時鐘打開,有的默認(rèn)是開著的,有的默認(rèn)是關(guān)著的,明白不?
某同學(xué):明白了
瑞生:比如你要設(shè)置引腳P0.2的功能,是不是需要打開IOCON模塊對應(yīng)P0.2的寄存器定義?
某同學(xué):是
瑞生:按照寄存器,選擇好功能,再把IOCON時鐘關(guān)閉,如果不想關(guān),可以一直開著
某同學(xué):明白了
瑞生:好的