小楠实习笔记(华大单片机使用配备软件安装)

1.keil5的安装(小华半导体需要的是MDK版本,C51版本不可以)

下载安装包,解压之后,管理员身份运行setup,然后管理员身份注册机注册许可证书,管理员身份打开keil5,许可管理,获取证书,u4汉化不建议,容易报错和卡顿,直接u5不汉化会好很多。可以在微信小程序软件管家里面找到安装资源。

2.pack包安装(相当于芯片驱动包)

可以去官网下载pack包,但是我用的芯片一直加载不出来,就去别的地方下载的pack包,之后是只要双击安装就好了,但是我的默认keil5打开导致一直乱码。右键选择打开方式,将63cd5a9b662441c4b8f5b55e37c6d462.png改为默认,然后next到finish就可以安装上了,创建工程的时候就可以找到自己的用的芯片了。

3.include报错

include之后 core_cm0plus.h找不到,导致报错,建议不要自己建立文件,很麻烦,可以用官方例程里面的空白工程慢慢加,example里面的temple,但是单独移动位置又会丢包,报错,自建立工程可以参考这位博主的文章:http://t.csdnimg.cn/Jl3L2

4.XHSC下载器的使用

7e13fa775ee5421990d596fb6c69d274.png

自带汉化,选择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.流动显示数码管

一定要加延时,不然会乱码,显示每个个位置的时候,都要先清屏,就是所有段码拉到不显示,根据共阴共阳选择高电平还是低电平。先显示再延时,两个顺序错的话,会直接很快看不到显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值