【LPC11U68】系统初始化之LED灯闪烁 我们在做一个项目时,首先要驱动起来MCU,主要包括基本的系统时钟,GPIO初始化等。官方的示例demo可以做实验使用,可以验证外设驱动的性能,但是我们应用在项目里就显得有些大而全了。 在本次实验中,我们仍然使用内部的IRC时钟源作为主时钟源使用,初始化系统时钟后,我们启动systick时钟,完成1ms的中断请求,并在中断请求里计数,当计数达到1000个时,翻转LED灯的输出状态。 LPC系列的库函数对于GPIO的操作也相对简单一些,这里以源代码为主,不再过多叙述了。
- /* System oscillator rate and RTC oscillator rate */
- const uint32_t OscRateIn = 12000000;
- const uint32_t RTCOscRateIn = 32768;
- int16_t gKHzcnt = 1000;
- /**
- * @}
- */
- /** @defgroup BBBB_Private_FunctionPrototypes
- * @{
- */
- /**
- * @}
- */
- /** @defgroup BBBB_Private_Functions
- * @{
- */
- int main(void)
- {
- Chip_SystemInit();
-
- SysTick_Config(48000);
-
- Chip_GPIO_Init(LPC_GPIO);
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 2, 17);
- Chip_GPIO_SetPinState(LPC_GPIO, 2, 17, true);
-
-
- while(1)
- {
- if(gKHzcnt <= 0)
- {
- gKHzcnt = 1000;
- Chip_GPIO_SetPinToggle(LPC_GPIO, 2, 17);
- }
- ;
- }
- }
- void SysTick_Handler(void)
- {
- if(gKHzcnt > 0)
- {
- gKHzcnt--;
- }
- }
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
复制代码 运行之后 就可以看到红色LED在一秒一闪的情景了。
|