本帖最后由 hejunpeng 于 2016-5-12 13:44 编辑
NXP MAPS-KL43 GPIO快速上手 —— 基于Keil uVision5 和 Kinetis SDK 2.0 GPIO操作一直是MCU的典型应用,此帖使用MAPS-KL43和官方SDK 2.0对KL43的GPIO进行操作,使用PE31端口来控制LCD背光LED灯来闪烁,因为使用起来比较简单,下面直接贴上程序代码和演示动画,并提供相关注释,编译环境采用 Keil uVision5。 MAPS-KL43开发套件: 原理图: 源码: - include "board.h"
- #include "fsl_debug_console.h"
- #include "fsl_gpio.h"
- #include "clock_config.h"
- #include "pin_mux.h"
- #include "fsl_port.h"
- #define LCD_BLK_GPIO GPIOE
- #define LCD_BLK_GPIO_PIN 31
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #define BOARD_LED_GPIO BOARD_LED_RED_GPIO
- #define BOARD_LED_GPIO_PIN BOARD_LED_RED_GPIO_PIN
- void delay(void);
- /*******************************************************************************
- * delay
- ******************************************************************************/
- void delay(void)
- {
- volatile uint32_t i = 0;
- for (i = 0; i < 400000; ++i)
- {
- __asm("NOP"); /* delay */
- }
- }
- /*******************************************************************************
- * main
- ******************************************************************************/
- int main(void)
- {
-
- /* 初始化系统时钟. */
- BOARD_BootClockRUN();
-
- /* 使能 LED端口时钟 */
- CLOCK_EnableClock(kCLOCK_PortE);
-
- /* LED复合端口配置 */
- PORT_SetPinMux(PORTE, 31U, kPORT_MuxAsGpio);
-
-
- /* LED 端口结构体配置*/
- gpio_pin_config_t led_config =
- {
- /* 方向为输出 */
- kGPIO_DigitalOutput,
-
- /* 输出低电平 */
- 0,
- };
-
- /* 初始化LED端口. */
- GPIO_PinInit(LCD_BLK_GPIO, LCD_BLK_GPIO_PIN, &led_config);
- while (1)
- {
- /* LED端口电平取反. */
- GPIO_TogglePinsOutput(LCD_BLK_GPIO, 1u << LCD_BLK_GPIO_PIN);
-
- /* 稍作延时. */
- delay();
- }
- }
复制代码
演示动画:
|