1.keil5的安装(小华半导体需要的是MDK版本,C51版本不可以)
下载安装包,解压之后,管理员身份运行setup,然后管理员身份注册机注册许可证书,管理员身份打开keil5,许可管理,获取证书,u4汉化不建议,容易报错和卡顿,直接u5不汉化会好很多。可以在微信小程序软件管家里面找到安装资源。
2.pack包安装(相当于芯片驱动包)
可以去官网下载pack包,但是我用的芯片一直加载不出来,就去别的地方下载的pack包,之后是只要双击安装就好了,但是我的默认keil5打开导致一直乱码。右键选择打开方式,将改为默认,然后next到finish就可以安装上了,创建工程的时候就可以找到自己的用的芯片了。
3.include报错
include之后 core_cm0plus.h找不到,导致报错,建议不要自己建立文件,很麻烦,可以用官方例程里面的空白工程慢慢加,example里面的temple,但是单独移动位置又会丢包,报错,自建立工程可以参考这位博主的文章:http://t.csdnimg.cn/Jl3L2
4.XHSC下载器的使用
自带汉化,选择MCU,波特率,hex文件以及电脑COM口,FLSH可以指定位置擦除,也可以全片擦除更新,下面是状态显示,boot下载的时候要高电平,低电平的时候不可下载。运行代码的时候需要先断电,将boot0置0后重新上电
5.历程库报错,我用的官方历程里面有4个错误,也可能是4个警告,定位到函数里面,是函数定义类型和使用类型不一样,全部改成void就可以了0错误0警告了
6.代码编写
从最基础的开始,点亮一个灯需要给一个引脚高电平,但是需要配置一系列的参数,华大内置函数里面定义好了结构体,直接调用就好,模板如下
stc_gpio_cfg_t stcGpioCfg;//端口配置结构体stcGpioCfg
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); //使能GPIO(目标外设,使能开关)
/*boolean_t bOutputVal; ///< 默认端口输出电平
en_gpio_dir_t enDir; ///< 端口方向配置
en_gpio_drv_t enDrv; ///< 端口驱动能力配置
en_gpio_pu_t enPu; ///< 端口上拉配置
en_gpio_pd_t enPd; ///< 端口下拉配置
en_gpio_od_t enOD; ///< 端口开漏输出配置
en_gpio_ctrl_mode_t enCtrlMode; ///< 端口输入/输出值寄存器总线控制模式配置
*/
stcGpioCfg.enDir = GpioDirOut; //端口输出
stcGpioCfg.enDrv = GpioDrvL; //高驱动能力
stcGpioCfg.enPu = GpioPuDisable; //无上下拉配置
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; //关闭开漏
stcGpioCfg.enCtrlMode = GpioAHB; //AHB总线模式
Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg); //初始化PA0
这里是底层的定义好的文件,直接调用就好,他是定义了一个结构体,后面的模式可以go to到定义里面找相应的定义就可以设置,具体情况可以参考这位博主的文章:
华大单片机GPIO配置_华大芯片如何设置默认引脚类型-CSDN博客
可以根据需求设置各种模式。
也可以直接对寄存器操作,小华给的参考手册里面有gpio配置寄存器的介绍,感兴趣的可以看看。
7.数码管调试
数码管驱动是选择位,之后相当于点段灯,跟led差不多。网上可以搜到段码,共阳极,共阴极不一样,共阳极低电平才能亮灯。一般是一个芯片的八个脚控制段码,可以直接百度段码,拿数组赋值,但是如果不是一个寄存器的端口,好像只能一个一个拉高拉低了。可以#define 段码每一段的gpio,后面换引脚好移植一点。(如果是一个一个脚拉的话,引脚一定要看仔细,因为出错之后自己有的时候还看不出来,需要检查好久)
8.流动显示数码管
一定要加延时,不然会乱码,显示每个个位置的时候,都要先清屏,就是所有段码拉到不显示,根据共阴共阳选择高电平还是低电平。先显示再延时,两个顺序错的话,会直接很快看不到显示。