本帖最后由 eltonchang2001 于 2022-11-9 11:37 编辑
一.前言
先感谢一下合泰和21IC给了这次试用机会,现在国内MCU厂家很多,由于NXP和ST的芯片采购困难周期长,公司项目也在换平台,GD已经用过了,华大的也在弄,估计公司也担心后面缺芯的情况,换平台其实是个比较繁琐的事情,没办法。很多厂家都推出了自己的MCU,但是封装和种类跟NXP、ST们比较还是有距离,希望国芯越来越好吧,芯片我个人觉得是个烧钱的项目,现在是群雄并起,估计后期可能剩下几家做的好的吧。再往后产能都起来了,什么情况不好说,时间会证明一切,哈哈。
二.开发板美照 MCU型号是HT32F52352,Cortex®-M0+ 内核,可以做低功耗应用啊,看这个内核。
上半部分是e-LINK32烧写工具,中间就是我们的MCU,外挂了一个8M晶振,小的X1估计是32.768K的RTC外部晶振,IO口引出来了,非常不错的开发板。 三.安装开发环境和点灯
1. 下载资料 官方整理的懒人资料包不错,哈哈,什么都有。 2. 安装开发环境 (1)先安装PACK包,我电脑是KEIL V5版本 这个keil支持文件 我也安装了,哈哈 (2)e-Link32/e-Link32 Pro for Keil 驱动包安装
插上板子识别了COM16, (3)打开程序,生成例程进行烧录 先解压程序包 好像需要自己生成需要的版本,试一下。 试一下GPIO的例程: 编译一下,没有问题 检查一下烧写设置 已经正常识别了e-LINK,很方便。 烧写程序: 可以正常烧写。 发现灯并没有点亮,检查了一下电路,发现不是PB1 正确是PC14,修改一下程序在进行测试。 void GPIO_Configuration(void) { { /* Enable peripheral clock */ CKCU_PeripClockConfig_TypeDef CKCUClock = {{ 0 }}; CKCUClock.Bit.AFIO = 1; CKCUClock.Bit.PC = 1; CKCU_PeripClockConfig(CKCUClock, ENABLE); }
{ /* Configure GPIO as output mode */
/* Configure AFIO mode as GPIO */ AFIO_GPxConfig(GPIO_PC, AFIO_PIN_14, AFIO_FUN_GPIO);
/* Configure GPIO pull resistor */ GPIO_PullResistorConfig(HT_GPIOC, GPIO_PIN_14, GPIO_PR_DOWN);
/* Default value RESET/SET */ GPIO_WriteOutBits(HT_GPIOC, GPIO_PIN_14, RESET);
/* Configure GPIO direction as output */ GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_14, GPIO_DIR_OUT); } }
/*********************************************************************************************************//** * @retval None ***********************************************************************************************************/ void GPIO_OutputBit(void) { GPIO_SetOutBits(HT_GPIOC, GPIO_PIN_14); // GPIO = HIGH __Delay(500000);
GPIO_ClearOutBits(HT_GPIOC, GPIO_PIN_14); // GPIO = LOW __Delay(5000000); }
/*********************************************************************************************************//** * @brief GPIO Output data test * @retval None ***********************************************************************************************************/ void GPIO_OutputData(void) { u16 uOutputData;
uOutputData = GPIO_ReadOutData(HT_GPIOB); uOutputData |= GPIO_PIN_14; // GPIO = HIGH GPIO_WriteOutData(HT_GPIOC, uOutputData); __Delay(500000);
uOutputData = GPIO_ReadOutData(HT_GPIOB); uOutputData &= ~(GPIO_PIN_14); // GPIO = LOW GPIO_WriteOutData(HT_GPIOC, uOutputData); __Delay(5000000); } 重新编译一下,在烧进去。 可以正常点亮。 如下图: 程序应该是闪烁才对,哈哈
|