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