6107|0

1239

帖子

66

TA的资源

纯净的硅(中级)

楼主
 

使用 MCUXpresso Config Tools工具配置FRDM-KW41Z的端口输出 [复制链接]

本帖最后由 dql2016 于 2017-6-17 19:50 编辑

MCUXpresso Config Tools是个图形化的MCU时钟,管脚初始化代码配置工具,支持生成多种IDE工程。


FRDM-KW41Z板卡PTB0连接了一颗红色LED,低电平点亮。
step1:选择MCU;


step2:点击工具菜单下的时钟栏目,配置时钟为外部32MHz晶体;


step3:点击工具菜单下的引脚栏目,把16号引脚路由至PTB0,加上标签LED3,方向为输出,高速模式,禁止开漏,驱动强度为高,无/禁止上下拉,关无源滤波器;


step3:点击工具菜单下的工程生成器栏目,依据喜好选择IDE,我这里生成keil MDK工程;

step4:打开生成的工程,添加LED管脚初始化代码,我这注释了user code begin/end的为自己添加,其它均为工程生成;
  1. /**
  2. * This is template for main module created by MCUXpresso Project Generator. Enjoy!
  3. **/

  4. #include "board.h"
  5. #include "pin_mux.h"
  6. #include "clock_config.h"

  7. //user code begin
  8. #include "fsl_gpio.h"

  9. #define Red_LED3_Toggle() GPIO_TogglePinsOutput(BOARD_INITPINS_LED3_GPIO, 1u <<BOARD_INITPINS_LED3_GPIO_PIN)

  10. void delay_ms(unsigned long xms)        
  11. {        
  12.           volatile uint32_t i = 0;
  13.         while(xms--)
  14.         {
  15.     for (i = 0; i < 4000; ++i)
  16.     {
  17.         __asm("nop"); /* delay */
  18.     }
  19.         }
  20. }
  21. //user code end

  22. /*!
  23. * [url=home.php?mod=space&uid=159083]@brief[/url] Application entry point.
  24. */
  25. int main(void) {
  26.   /* Init board hardware. */
  27.   BOARD_InitBootPins();
  28.   BOARD_InitBootClocks();
  29.   BOARD_InitDebugConsole();

  30.   /* Add your code here */
  31. //user code begin        
  32.                 /* Output pin configuration */
  33.          gpio_pin_config_t outconfig =
  34.          {
  35.                  kGPIO_DigitalOutput,
  36.                  0,
  37.          };
  38.          
  39.          GPIO_PinInit(BOARD_INITPINS_LED3_GPIO, BOARD_INITPINS_LED3_GPIO_PIN, &outconfig);//the  red LED3 on board
  40. //user code end                                                               

  41.   for(;;) { /* Infinite loop to avoid leaving the main function */
  42.     __asm("NOP"); /* something to use as a breakpoint stop while looping */
  43. //user code begin               
  44.                 Red_LED3_Toggle();
  45.                 delay_ms(100);
  46. //user code end               
  47.   }
  48. }
复制代码


首先是定义一个GPIO输出结构体;
  1.          gpio_pin_config_t outconfig =
  2.          {
  3.                  kGPIO_DigitalOutput,
  4.                  0,
  5.          };
复制代码


然后调用fsl_gpio.h里的函数GPIO_PinInit()初始化;
  1. * @param base   GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
  2. * @param pin    GPIO port pin number
  3. * @param config GPIO pin configuration pointer
  4. */
  5. void GPIO_PinInit(GPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config);
复制代码

调用fsl_gpio.h里的GPIO_TogglePinsOutput()实现翻转IO;
  1. GPIO_TogglePinsOutput(BOARD_INITPINS_LED3_GPIO, 1u <<BOARD_INITPINS_LED3_GPIO_PIN)
复制代码

step5:Keil MDK调试工具选择JLINK,SW模式,速度飞快;





工程源码:
KW41Z_Test.zip (10.36 MB, 下载次数: 3, 售价: 1 分芯积分)

此帖出自NXP MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表