本帖最后由 Harvard 于 2019-12-30 17:00 编辑
言归正传,话接上回, 认识了ES-LINK II 和PDS开发板,现在轮到我们来进行水到渠成的一部, 先给板子通个电, 写他个小程序(一个代码很少的简单的单片机代码,并非手机里的小程序的概念.),然后点亮个LED吧. 俗称点灯.
首先,打开我们的keil5, 最新的是mdk 5.29版本 ,详细的下载地址本论坛有. 看看,有没有支持到我们所需要的ES32F0654的芯片.
打开21ic下载_ES32_SDK_V1.03\ES32_SDK_V1.03\Projects\ES32F065x\Discovery\00_example\MDK-ARM
文件夹下的keil5工程, 然后点开魔术棒
看看device里面是否有正确的型号显示, 如果没有 请按照东软 的pack包:
Eastsoft.ES32_DFP.1.0.2.pack
直接点击,就可以运行,和所有的mdk 所支持的arm新器件一样. 按照对应的pack包.
此处,有必要重点提一下.pack包里面的说明文档:
AN2017_简介_ES32SDK.pdf
其文,重点阐述了,整个软件库的结构,说明, 不得不说,这就是中国制造的魅力, 纯中文撰写, 没有了各种英译文的不爽,直接切中要害, 言简意赅.
MD 和ALD 都是比较新颖的字眼,把整个软件库清晰分层,利于我们使用理解; 我们先来体验下第一个点灯程序 ,非常简单.采用md底层库;
void config_gpio(void)
{
md_gpio_set_pin_function(LED2_GPIO_PORT, LED2_GPIO_PIN, GPIO_FUNC_1);
md_gpio_set_pin_push_pull(LED2_GPIO_PORT, LED2_GPIO_PIN);
md_gpio_set_pin_mode_output(LED2_GPIO_PORT, LED2_GPIO_PIN);
}
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] Test main function
* @retval Status.
*/
int main()
{
md_init_1ms_tick();
config_gpio();
while (1)
可以看出,程序非常简洁, main主程序里面, 先初始化一个1ms的节拍,然后 配置LED所在的IO,此时,我选择的是PC08;
在main.h中进行如下配置:
#define LED2_GPIO_PORT GPIOC
#define LED2_GPIO_PIN MD_GPIO_PIN_8
然后重新编译,默认是选择了jlink方式,我们重新选择下,
点击LOAD按钮,下载程序,如果程序没有正确运行,请勾选reset and run,如果下载不成功,再确认下下载算法是否是ES32f065X
核心的点灯程序其实非常简单
其本质就是一个SET_BIT的置位的一个宏:
#define SET_BIT(reg, bit) ((reg) |= (bit))
如此,可以体会到东软的库,很别致,很容易上手,可配置性 可选择性都很强. 希望有机会量产使用.
|