背景
国产单片机的生态本身就比较差,不像STM32被广泛使用和学习,虽然单片机的原理相同,但是国产的合泰单片机是用自己的编译器和语言,第一次接触难免摸不着北,我也是第一次接触合泰单片机,想以写文章的形式来记录自己的学习过程,也希望国产单片机能被广泛学习和使用。
一、HT-IDE3000创建工程
首先是打开HT-IDE3000,这个是合泰自己的编译器,可以到合泰官网进行下载“https://www.holtek.com.cn/ice”,如果没有连接烧录器和仿真芯片,打开后会弹出提示,可以先忽略,点击取消即可。
在上方点击工程,选择新建工程,这里我用的是HT66F0185的仿真芯片,选择好后下面默认next就好。
到了一些系统配置,如下图,这里是选择系统电压,系统频率等等,一般不需要修改就选择OK就行了。
二、根据芯片数据手册初始化IO口
1.数据手册介绍
第一次使用合泰单片机会挺不习惯的,它的IO口初始化需要自己去操作寄存器,在合泰官网搜索仿真芯片对应的型号,比如我的是HT66F0185,打开手册后找到引脚说明,我这里要使用PA4口,我要将它配置为输出口,这里要注意“ / ”的最后是这个IO口的默认功能,这个PA4口默认是用作AN3表示的是AD转换的通道3,AD转换功能由ACERL寄存器控制,表中也有说明。
在数据手册中查询ACERL寄存器,POR表示上电默认状态,可以看到ACE3的说明,定义默认PA4口为A/D输入。那要将PA4改为输出就得将这个功能关闭。
2.初始化IO口
在初始化时将PA4口的ACERL寄存器置为0就可以将AD采集功能关闭,在写程序时编译器会有提示功能,acerl=0x00是将AD采集功能的引脚全部关闭,也可以使用_ace4=0;只操作PA4口,然后操作pac寄存器,将pa4设置为输出引脚,通过papu寄存器设置PA4是否上拉。写到这里就可以使PA4输出高电平了。
代码如下(示例):
void main()
{
_acerl=0x00;//先关闭AD采样的功能,_ace4=0;
_pac=0x00; //PA口全部输出
_papu4=1; //PA4上拉
_pa4=1;//PA4输出高电平
while(1)
{
GCC_CLRWDT();//看门狗喂狗
}
}
总结
学习单片机第一课都是从点灯开始,你把灯点亮了吗?
通过基本学习也能看出合泰单片机与STM32的区别还是很大的,STM32提供了库函数给我们使用,合泰是提供了寄存器让我们操作本质是一样的但还是需要简单学习一下怎么操作。
|