本帖最后由 rongxiangjun 于 2020-9-24 16:27 编辑
LPC546xx如何从CLKOUT 引脚输出时钟信号
时钟信号是一个很重要的信号, 将时钟信号输出到一个管脚上,且将此信号连接到示波器上,我们就可以观测此信号,测量此信号的频率,检验和我们期望的是否一致。
LPC54628 有CLKOUT信号,此信号可以从多个引脚输出。此贴展示如何将一个时钟信号输出到CLKOUT引脚。 LPC54628 CLKOUT信号的输出引脚
LPC54628 CLKOUT信号的时钟源:
LPC54628 CLKOUT信号的分频数:
代码的流程:
从表116中选择一个引脚作为CLKOUT的输出脚 配置此脚使其作为CLKOUT的输出 选择输出的时钟信号 配置分频数
代码:
//OUTPUT CLKOfrom PIO3_12, the Pin9 of J12 on LPC54620-EVK,
#define IOCON_PIO_FUNC5 5
#define IOCON_PIO_FUNC0 0
void outputCLKO(void)
{
CLOCK_EnableClock(kCLOCK_Iocon);
//select main_clk clock as CLKOUT outputtingclock
SYSCON->CLKOUTSELA=0x00;
const uint32_t port3_pin12_config = \
(/* Pin is configured as CLKOUT*/
IOCON_PIO_FUNC5 |
/* Noaddition pin function */
IOCON_PIO_MODE_INACT |
/* Standardmode, output slew rate control is enabled */
IOCON_PIO_SLEW_STANDARD |
/* Inputfunction is not inverted */
IOCON_PIO_INV_DI |
/* Enablesdigital function */
IOCON_PIO_DIGITAL_EN |
/* Open drainis disabled */
IOCON_PIO_OPENDRAIN_DI);
/* PORT3PIN12is configured CLKOUT */
IOCON_PinMuxSet(IOCON, 3U, 12U, port3_pin12_config);
/*divideris 256*/
SYSCON->CLKOUTDIV=0xFF;
while( SYSCON->CLKOUTDIV&0x80000000) {}
__asm("nop");
//SYSCON->CLKOUTSELA=0x00;
}
|