[综合信息] 【华大测评】+ 环境搭建,点灯、按键等

[复制链接]
 楼主| 海洋无限 发表于 2020-9-30 21:26 | 显示全部楼层 |阅读模式
本帖最后由 海洋无限 于 2020-9-30 21:25 编辑

今天搭建开发板开发环境,keil+JLink,其实论坛很多 人都写过了,坑也填的差不多了,这里就不多废话了,我搭建和顺利,基本没出现什么问题。这里只说一个我踩到的雷,估计大多数人都碰不到。对一个自己之前没有用过的开发板,搭建工程时,我不太喜欢使用提供的Project Sample,一般我都会从头搭建,顺便熟悉下库文件及文件放置的规律。我是在官网上下载的资料,开始搭建,同时为了驱动LCD,我也下载了论坛上的驱动LCD的样例程序,这里犯了一个严重的错误,CPU相关的库文件及配置文件我在搭建时混着用了,编译出错了,然后我用BC进行了对比,发现库文件中的定义不同,如下:

库文件对比

库文件对比
当时没反应过来,我就编译了下LCD的代码,OK,心里想不会是官方的例程编不过吧,对比了两个库文件下的readme,才发现官网的比较新,这才意识到文件混用了,马上改正后编译顺利通过,这里浪费了一些时间,这里建议大家直接用官网的例程就可以了,不会出现我出现的问题,这里是个小插曲。
言归正传,按照例程copy LED代码,使能System tick定时器,驱动LED闪烁,写Key读取代码(这里是单个按键,矩阵按键准备等下次再弄)并驱动LED闪烁,
  1. #define  LED0_PORT        (PortE)   // LED1
  2. #define  LED0_PIN         (Pin06)
  3. #define  LED1_PORT        (PortA)   // LED2
  4. #define  LED1_PIN         (Pin07)
  5. #define  LED2_PORT        (PortB)   // LED3
  6. #define  LED2_PIN         (Pin05)
  7. #define  LED3_PORT        (PortB)   // LED4
  8. #define  LED3_PIN         (Pin09)
  1. /* LED0~3 toggle definition */
  2. #define  LED0_TOGGLE()    (PORT_Toggle(LED0_PORT, LED0_PIN))
  3. #define  LED1_TOGGLE()    (PORT_Toggle(LED1_PORT, LED1_PIN))
  4. #define  LED2_TOGGLE()    (PORT_Toggle(LED2_PORT, LED2_PIN))
  5. #define  LED3_TOGGLE()    (PORT_Toggle(LED3_PORT, LED3_PIN))
  1. static void SysClkInit(void)
  2. {
  3.     en_clk_sys_source_t     enSysClkSrc;
  4.     stc_clk_sysclk_cfg_t    stcSysClkCfg;
  5.     stc_clk_xtal_cfg_t      stcXtalCfg;
  6.     stc_clk_mpll_cfg_t      stcMpllCfg;

  7.     MEM_ZERO_STRUCT(enSysClkSrc);
  8.     MEM_ZERO_STRUCT(stcSysClkCfg);
  9.     MEM_ZERO_STRUCT(stcXtalCfg);
  10.     MEM_ZERO_STRUCT(stcMpllCfg);

  11.     /* Set bus clk div. */
  12.     stcSysClkCfg.enHclkDiv = ClkSysclkDiv1;   // Max 168MHz
  13.     stcSysClkCfg.enExclkDiv = ClkSysclkDiv2;  // Max 84MHz
  14.     stcSysClkCfg.enPclk0Div = ClkSysclkDiv1;  // Max 168MHz
  15.     stcSysClkCfg.enPclk1Div = ClkSysclkDiv2;  // Max 84MHz
  16.     stcSysClkCfg.enPclk2Div = ClkSysclkDiv4;  // Max 60MHz
  17.     stcSysClkCfg.enPclk3Div = ClkSysclkDiv4;  // Max 42MHz
  18.     stcSysClkCfg.enPclk4Div = ClkSysclkDiv2;  // Max 84MHz
  19.     CLK_SysClkConfig(&stcSysClkCfg);

  20.     /* Switch system clock source to MPLL. */
  21.     /* Use Xtal32 as MPLL source. */
  22.     stcXtalCfg.enMode = ClkXtalModeOsc;
  23.     stcXtalCfg.enDrv = ClkXtalLowDrv;
  24.     stcXtalCfg.enFastStartup = Enable;
  25.     CLK_XtalConfig(&stcXtalCfg);
  26.     CLK_XtalCmd(Enable);

  27.     /* MPLL config. */
  28.     stcMpllCfg.pllmDiv = 1u;
  29.     stcMpllCfg.plln =42u;
  30.     stcMpllCfg.PllpDiv = 2u;
  31.     stcMpllCfg.PllqDiv = 2u;
  32.     stcMpllCfg.PllrDiv = 2u;
  33.     CLK_SetPllSource(ClkPllSrcXTAL);
  34.     CLK_MpllConfig(&stcMpllCfg);

  35.     /* flash read wait cycle setting */
  36.     EFM_Unlock();
  37.     EFM_SetLatency(EFM_LATENCY_5);
  38.     EFM_Lock();

  39.     /* Enable MPLL. */
  40.     CLK_MpllCmd(Enable);

  41.     /* Wait MPLL ready. */
  42.     while(Set != CLK_GetFlagStatus(ClkFlagMPLLRdy))
  43.     {
  44.       ;
  45.     }

  46.     /* Switch system clock source to MPLL. */
  47.     CLK_SetSysClkSource(CLKSysSrcMPLL);
  48. }
  1. #define  ACTIVE_LEVEL_LOW   (0)
  2. #define  ACTIVE_LEVEL_HIGH  (1)
  3. #define  KEY_ACTIVE_LEVEL   ACTIVE_LEVEL_LOW
  4. #define  KEY_PORT           (PortD)
  5. #define  KEY1_PIN           (Pin03)
  6. #define  KEY2_PIN           (Pin04)
  7. #define  KEY3_PIN           (Pin05)
  8. #define  KEY4_PIN           (Pin06)
然后编译,烧写后看到开发板Green LED 灯周期闪烁,Blue LED 在SW2每按下一次状态翻转一次,收工。



zeshoufx 发表于 2020-9-30 21:57 | 显示全部楼层
谢谢分享【 环境搭建,点灯、按键】
tfqi 发表于 2020-10-11 17:08 | 显示全部楼层
非常感谢楼主分享
wiba 发表于 2020-10-11 17:09 | 显示全部楼层
自己做的留下的**更深刻
zljiu 发表于 2020-10-11 17:09 | 显示全部楼层
看起来还是很好上手的
coshi 发表于 2020-10-11 17:09 | 显示全部楼层
非常不错 很详细
磨砂 发表于 2020-10-11 17:10 | 显示全部楼层
支持楼主一下
zly188 发表于 2021-1-6 21:00 来自手机 | 显示全部楼层
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。
 楼主| 海洋无限 发表于 2021-1-7 12:26 | 显示全部楼层
zly188 发表于 2021-1-6 21:00
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。

这个不记得了,是不是要reset下
caigang13 发表于 2021-1-7 20:37 来自手机 | 显示全部楼层
不错,感谢楼主分享。
单片小菜 发表于 2021-1-8 10:51 | 显示全部楼层
这个帖子不错的,感谢楼主的分享。
xiaoyaodz 发表于 2021-1-12 23:40 | 显示全部楼层
差一个演示视频了。华大的芯片效果怎么样   
杨寅辉 发表于 2021-1-15 10:37 | 显示全部楼层
zly188 发表于 2021-1-6 21:00
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。

这个应该是可以在软件中配置的吧,配置为下载后运行就OK了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:永远忠于年轻时的梦想!

39

主题

539

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部