首页 > 编程知识 正文

合泰单片机入门教程,义隆单片机开发环境

时间:2023-05-03 23:11:27 阅读:112328 作者:3553

以前使用的是ARM系列的单片机,现在由于产品的需要,使用的是合泰单片机(HT67F2360 ),但在开发中发现有很多不同。

一、开发环境中的一些差异#

arm系列单片机可以直接用keil连接选定的芯片进行编译、调试和写入。 这个泰国单片机,ht-ide不能直接写入芯片。 ht-ide只能向专用的模拟开发板写入程序。 模拟开发板有两块板,主板和子板,不同系列的单片机,用不同的子板进行模拟。 悲剧的是,我没有开发模拟板。 程序启动了。 必须使用官方书写工具hope3000 for e-link将mtp文件写入特定的芯片。 久违地找到hope3000的命令行工具,每次写入时,都要多次点击鼠标。 选择文件、选择电压并下载,效率不高。

二、编译器、连接器的一些区别

HIT-IDE编译器有三个版本: V1、V2和V3。 这三个版本的差异不仅在于性能的差异,还在于许多语言支持的差异。

三种版本的编译器,c语言的基本数据类型的size(bit )相互不一致。 此外,任何版本都与ANSI C不完全匹配。

中断函数支持的差异。 V1不支持中断处理函数调用函数。 V2,V3支持中断处理程序函数调用函数,但被调用的函数必须定义为#pragma nolocal。 此外,中断调用的函数不能与在main中调用的函数相同,也不能在中断之间调用相同的函数(包括间接调用)。 否则,RAM空间将被重复使用。

V1 V2不支持静态变量,V3支持。

默认情况下,未初始化的全局变量不会初始化为0。 如有必要,请使用工程编译选项进行检查。

缺省情况下,枚举类型不是字节。

三.内存和间接寻址

该单片机没有表示所有内存地址的统一虚拟地址空间。

内存包括闪存程序存储器、数据存储器、特殊功能寄存器和EEPROM数据存储器。

数据存储器分为几个Sector,操作不同的数据存储器,切换到不同的Sector。

例如,液晶屏内存的地址位于Sector 4上,要操作液晶屏内存,请先切换Sector,然后以间接寻址方式操作存储单元。

EEPROM数据存储器独立于程序存储器和数据存储器,不能像其他类型的存储器那样进行寻址。

地址寄存器EEA、数据寄存器EED、控制寄存器EEC这3个寄存器用于控制内部EEPROM数据存储器的动作。

EEA和EED位于Sector中,可以直接访问。 EEC位于Sector1,必须间接访问。

四.示例代码#

液晶屏内存写入操作example

voidLCD_write_mem(uint8_taddr,uint8_t val )。

{

_mp1h=0x04; //sector

_mp1l=addr;

_iar1=val;

_mp1h=0x00;

}

EEPROM内存操作接口example :

uint8_ t EEPROM _ read _ byte (uint8_ taddr ) )。

{

uint16_t i=0;

//间接访问_eec

_mp1l=0x40;

_mp1h=0x01;

_eea=addr;

_iar1 |=0x02; //_rden=1;

_iar1 |=0x01; //_rd=1

_emi=1;

while () _IAR10x01 ) ) ) i 1000 ) )

GCC_Delay(100;

_iar1=0xFD;

_mp1l=0x00;

_mp1h=0;

return _eed;

}

void EEPROM _ write _ byte (uint8_ taddr,uint8_t data )。

{

uint16_t i=0;

_emi=0;

//间接访问_eec

_mp1l=0x40;

_mp1h=0x01;

_eea=addr;

//_eea=addr;

_eed=data;

_iar1 |=0x08; //_wren=1;

_iar1 |=0x04; //_wr=1

_emi=1;

//wait _wr

while () _IAR10x04 ) ) ) i 1000 ) )

GCC_Delay(100;

_mp1l=0x00;

_mp1h=0;

_iar1=0x7; //_wren=0

_emi=1;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。