【新提醒】华大单片机(hc32l073pata)环境搭建及点灯源程序
官网链接: http://www2.keil.com/mdk5
安装教程自己在网上可以找到
2)安装华大ide包
官网链接: www.hdsc.com.cn/Category82-1425?All=1
安装教程:双击IDE运行包,然后一直往下操作
注意:如果是自己找的包,或者是某宝给的,使用这种包flash download 里边可能会找不到华大芯片的类型,加也加不进去。所以还是建议使用官方的。
3)连接板子,下好驱动
使用的是st-link,st-link在keil安装目录下有,一般是安装目录\ARM\STLink ,里边有个exe程序,运行然后device connect(就按着程序提示一直装),装好之后打开电脑->属性->设备管理器,就能看到有个STM32 stlink的,说明装好了。
4)下载
打开keil,然后打开点灯的例程(如果是自己找的SDK,记得要核对芯片的型号是否是自己板子的类型)
魔术棒->debug->stlink debugger 然后按setting
正常情况下是SW device 有显示地址 ,debug adapter 有显示正确内容 flash download有显示芯片型号
如果SW device 没显示,说明没识别到芯片(我之前用的jlink识别不到,就换了个stlink,暂时没想到别的方法可以解决)
如果flash download 没有对应的芯片,点add自己加进去,如果add的列表没有芯片的型号,要么自己把flm文件给放到对应的flash文件夹,要么就重新装ide包。(都不行的话就没办法了)
点击 rebuild(两个向下箭头的图标)编译,没问题的话,就点旁边的download,最后点击一个带d的放大镜图标进入调试,点击run就可以看到板子上的灯在闪
如果下载成功灯没闪的话,要么是硬件的问题,要么是程序的问题。
程序的问题,需要翻原理图,看代码对应的端口是否是连接到led的那个端口
硬件的问题,电路连接是否正确,仿真器是否能正确识别
制作出来的实物图如下:
单片机源程序如下:
/******************************************************************************
* Include files
******************************************************************************/
#include "gpio.h"
/******************************************************************************
* Local pre-processor symbols/macros ('#define')
******************************************************************************/
/******************************************************************************
* Global variable definitions (declared in header file with 'extern')
******************************************************************************/
/******************************************************************************
* Local type definitions ('typedef')
******************************************************************************/
/******************************************************************************
* Local function prototypes ('static')
******************************************************************************/
/******************************************************************************
* Local variable definitions ('static') *
******************************************************************************/
/******************************************************************************
* Local pre-processor symbols/macros ('#define')
******************************************************************************/
/*****************************************************************************
* Function implementation - global ('extern') and local ('static')
******************************************************************************/
static void App_LedInit(void);
/**
******************************************************************************
** \brief Main function of project
**
** \return uint32_t return value, if needed
**
** This sample
**
******************************************************************************/
int32_t main(void)
{
///< LED端口初始化
App_LedInit();
while(1)
{
///< LED点亮
Gpio_SetIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
delay1ms(1000);
///< LED关闭
Gpio_ClrIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
delay1ms(1000);
}
}
static void App_LedInit(void)
{
stc_gpio_cfg_t stcGpioCfg;
///< 打开GPIO外设时钟门控
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
///< 端口方向配置->输出(其它参数与以上(输入)配置参数一致)
stcGpioCfg.enDir = GpioDirOut;
///< 端口上下拉配置->下拉
stcGpioCfg.enPu = GpioPuDisable;
stcGpioCfg.enPd = GpioPdEnable;
///< LED关闭
Gpio_ClrIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
///< GPIO IO LED端口初始化
Gpio_Init(EVB_LEDR_PORT, EVB_LEDR_PIN, &stcGpioCfg);
}
/******************************************************************************
* EOF (not truncated)
******************************************************************************/