打印
[综合信息]

【华大测评】+ 环境搭建,点灯、按键等

[复制链接]
1187|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 海洋无限 于 2020-9-30 21:25 编辑

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

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

    MEM_ZERO_STRUCT(enSysClkSrc);
    MEM_ZERO_STRUCT(stcSysClkCfg);
    MEM_ZERO_STRUCT(stcXtalCfg);
    MEM_ZERO_STRUCT(stcMpllCfg);

    /* Set bus clk div. */
    stcSysClkCfg.enHclkDiv = ClkSysclkDiv1;   // Max 168MHz
    stcSysClkCfg.enExclkDiv = ClkSysclkDiv2;  // Max 84MHz
    stcSysClkCfg.enPclk0Div = ClkSysclkDiv1;  // Max 168MHz
    stcSysClkCfg.enPclk1Div = ClkSysclkDiv2;  // Max 84MHz
    stcSysClkCfg.enPclk2Div = ClkSysclkDiv4;  // Max 60MHz
    stcSysClkCfg.enPclk3Div = ClkSysclkDiv4;  // Max 42MHz
    stcSysClkCfg.enPclk4Div = ClkSysclkDiv2;  // Max 84MHz
    CLK_SysClkConfig(&stcSysClkCfg);

    /* Switch system clock source to MPLL. */
    /* Use Xtal32 as MPLL source. */
    stcXtalCfg.enMode = ClkXtalModeOsc;
    stcXtalCfg.enDrv = ClkXtalLowDrv;
    stcXtalCfg.enFastStartup = Enable;
    CLK_XtalConfig(&stcXtalCfg);
    CLK_XtalCmd(Enable);

    /* MPLL config. */
    stcMpllCfg.pllmDiv = 1u;
    stcMpllCfg.plln =42u;
    stcMpllCfg.PllpDiv = 2u;
    stcMpllCfg.PllqDiv = 2u;
    stcMpllCfg.PllrDiv = 2u;
    CLK_SetPllSource(ClkPllSrcXTAL);
    CLK_MpllConfig(&stcMpllCfg);

    /* flash read wait cycle setting */
    EFM_Unlock();
    EFM_SetLatency(EFM_LATENCY_5);
    EFM_Lock();

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

    /* Wait MPLL ready. */
    while(Set != CLK_GetFlagStatus(ClkFlagMPLLRdy))
    {
      ;
    }

    /* Switch system clock source to MPLL. */
    CLK_SetSysClkSource(CLKSysSrcMPLL);
}
#define  ACTIVE_LEVEL_LOW   (0)
#define  ACTIVE_LEVEL_HIGH  (1)
#define  KEY_ACTIVE_LEVEL   ACTIVE_LEVEL_LOW
#define  KEY_PORT           (PortD)
#define  KEY1_PIN           (Pin03)
#define  KEY2_PIN           (Pin04)
#define  KEY3_PIN           (Pin05)
#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 | 只看该作者
自己做的留下的**更深刻

使用特权

评论回复
5
zljiu| | 2020-10-11 17:09 | 只看该作者
看起来还是很好上手的

使用特权

评论回复
6
coshi| | 2020-10-11 17:09 | 只看该作者
非常不错 很详细

使用特权

评论回复
7
磨砂| | 2020-10-11 17:10 | 只看该作者
支持楼主一下

使用特权

评论回复
8
zly188| | 2021-1-6 21:00 | 只看该作者
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。

使用特权

评论回复
9
海洋无限|  楼主 | 2021-1-7 12:26 | 只看该作者
zly188 发表于 2021-1-6 21:00
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。

这个不记得了,是不是要reset下

使用特权

评论回复
10
caigang13| | 2021-1-7 20:37 | 只看该作者
不错,感谢楼主分享。

使用特权

评论回复
11
单片小菜| | 2021-1-8 10:51 | 只看该作者
这个帖子不错的,感谢楼主的分享。

使用特权

评论回复
12
xiaoyaodz| | 2021-1-12 23:40 | 只看该作者
差一个演示视频了。华大的芯片效果怎么样   

使用特权

评论回复
13
杨寅辉| | 2021-1-15 10:37 | 只看该作者
zly188 发表于 2021-1-6 21:00
采用ISP下载后,断电后才能运行吗?还是下载后可以直接运行。

这个应该是可以在软件中配置的吧,配置为下载后运行就OK了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

38

主题

532

帖子

1

粉丝