Tiva C AHB总线的使用
AHB总线概述
there are two on-chip buses that connect the core to the peripherals. The Advanced Peripheral Bus (APB) bus is the legacy bus. The Advanced High-Performance Bus (AHB) bus provides better back-to-back access performance than the APB bus.
The Advanced Peripheral Bus (APB)bus is the legacy bus. The Advanced High-Performance Bus (AHB) bus provides better back-to-backaccess performance than the APB bus.
—— [ Tiva™ TM4C123GH6PM Microcontroller ]
AHB总线是一种高级高性能外设总线,通过Figure 1-1可以看出,TM4C123GH6PM的43个GPIO可以挂载到AHB总线,并且在该模式下,GPIO的翻转只需要两个系统时钟。
AHB总线的使用
可以通过函数SysCtlGPIOAHBEnable(uint_32 ui32GPIOPeripheral)
将GPIO挂载到AHB总线上,ui32GPIOPeripheral只能使用固定的值:SYSCTL_PERIPH_GPIOA,SYSCTL_PERIPH_GPIOB,…SYSCTL_PERIPH_GPIOJ。
GPIO挂载到AHB总线后,GPIO的操作要使用GPIO_PORTn_AHB_BASE作为基地址代替GPIO_PORTn_BASE。
以下是GPIO挂载到AHB总线的具体代码实现
//配置系统时钟80MHz
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
//使能GPIOF外设
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//GPIOF挂载AHB高性能总线
SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOF);
//挂载高性能总线后GPIOF基地址为GPIO_PORTF_AHB_BASE
//PF0输出模式
GPIOPinTypeGPIOOutput(GPIO_PORTF_AHB_BASE, GPIO_PIN_0);
//PF0输出1
GPIOPinWrite(GPIO_PORTF_AHB_BASE, GPIO_PIN_0,1);