77|1

1137

帖子

17

TA的资源

纯净的硅(高级)

楼主
 

【MCXN947评测】-点灯 [复制链接]

  1. 前言
    • 本次测评是直接在NXP官网上申请的,不是参加的EEWORLD的活动,所以评测也没有了压力,自己有空了就玩玩。
    • 我和有个坛友一样,首次接触ARM单片机就是LPC1114,当年是ZLG推广的,开发板当时也很“便宜”,50块钱逻板+下载器。从51单片机转过来,很快就入门了。玩过LPC1114的都知道,它是基于寄存器写代码的,对于了解单片机底层确实很深入。后来玩STM32直接用库就没怎么深入了。
    • 再之后玩过LPC1225、LPC1770系列,之后就转STM32了。
    • N947资源还是比较不错的,我主要看中的是双核、AI、16位AD,3运放,XSPI、大内存、大FLASH这几款特性。因为我后边想在项目里用上它。特别是它的XSPI可以同时支持外部FLASH和外部串行RAM,扩个32M大内存也没问题。
  2. 安装环境
    • 官方主推的是【MCUXpresso IDE】,我花了一点时间安装了环境,想说的是爱你真不容易,需要勇气。
    • MCUXpresso IDE安装后,光是导入SDK我就花了好久,在网上找的教程图片,安装软件后,仍是没找到安装SDK的界面在哪,见下图,这个界面试了好久才找出来的,得先点左上角红点处,点了之后界面还特别小,拖到最大才显示出安装SDK的位置,并且所有菜单中都找不到这一项,只能用这种方法调出来。
    •  

      导入SDK下一步时,它竟然还要联网,我不是把SDK下载好了么?我在公司电信网络一直过不去,回到家用移动网才行

      后来我就放弃了,直接用它配置工具,将SDK导出到KEIL中用,还是熟悉的配方和味道。

       

       

       

  3. 引脚配置工具
    • NXP的引脚配置工具功能非常强大,和STM32 CUBE MX有一拼,不过功能多了显得有些乱,特别是在高分屏上显示的总觉得怪怪的。STM32CUBE MX它生成的代码有很多注释,用户程序只要放在规定的USER CODE注释中,再次生成也不会被删除,但NXP的好像不行,不过一般也不需要,因为它生成的文件逻辑层次很好,都是在独立文件中,也不需要和用户代码嵌在一起。
    • 还有个特点是NXP的更新程序代码有代码比较工具,以及寄存器变更列表,很容易知道改了哪些。
    •  

  4. 点灯
    • 查看开发板图纸,三色灯-红灯是安排在P0-10引脚上的,低电平点亮
    • 用引脚配置工具配置引脚,配置别称,初始电平,方向等
    • 引脚标签一定要起一个,后边写代码时好调用 
    •  

      然后再配置一下Systick,配置为1ms中断
      • 然后就是代码了
      • 搞个延时函数,以及systick irq中断函数,修改主逻辑,其它的代码不改
      • uint32_t tick_count=0;
         
         void Delay(int ms){
            tick_count=ms;
           while(tick_count);
         }
         void SysTick_Handler(void){
          if(tick_count)
            tick_count--;
         }
         
        
        int main(void)
        {
            char ch;
        
            /* Init board hardware. */
            /* attach FRO 12M to FLEXCOMM4 (debug console) */
            CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 1u);
            CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
        
            /* attach TRACECLKDIV to TRACE */
            CLOCK_SetClkDiv(kCLOCK_DivTraceClk, 2U);
            CLOCK_AttachClk(kTRACE_DIV_to_TRACE);
        
            BOARD_InitPins();
            BOARD_InitBootClocks();
            BOARD_InitDebugConsole();
        
            PRINTF("hello world.\r\n");
          
            BOARD_InitBootPeripherals();  //初始化外设-SYSTICK 1ms中断
            
            while (1)
            {
                //ch = GETCHAR();
                //PUTCHAR(ch);
                Delay(500);
                BOARD_INITPINS_LED_RED_GPIO->PDOR&=~BOARD_INITPINS_LED_RED_GPIO_PIN_MASK;  //清0,点亮
                Delay(500);
                BOARD_INITPINS_LED_RED_GPIO->PDOR|=BOARD_INITPINS_LED_RED_GPIO_PIN_MASK;     
            }
        }
        

        代码中,由于在引脚配置时,已配置了引脚标签,所以这里调用就比较方便了。

      • 寄存器直接写代码,NXP的还是很方便的。

      • 测试中发现一个问题,其它朋友好像也提到过的,下载程序没运行,调试或复位才会执行,后边再查查原因。

      • 我比较喜欢自己搞代码,我看有很多评测把官方例子跑一次就好了,那是学不到东西的,得自己动手。

       

       

此帖出自NXP MCU论坛

最新回复

学习了学习了学习了   详情 回复 发表于 1 小时前
点赞 关注
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

学习了学习了学习了

此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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