首页 > 其他 > 详细

ADE5169单片机串口通讯

时间:2020-06-28 15:56:46      阅读:49      评论:0      收藏:0      [点我收藏+]

ADE5169使用的是51内核,在设置串口波特率的时候与51单片机类似,都是使用定时器来生成波特率,但是ADE5169为了不占用Timer1/2,为每个串口都增加了一个独立的UART定时器,并且配置起来非常简单,不用像59c51一样自己去计算(其实是人家已经帮你算好了),先上代码(我配置的是8bit,115200 Baud)

//首先将fcore配置为4M,初始化时调用这个函数
void set_fCORE( void )
{
	KYREG = unlock_key_0xa7 ;
	POWCON = 0x80;
	KYREG = lock_key_0x00 ;
}

//然后初始化串口
void serial1_init( void )
{
	SCON = 0X50;
	SBAUDT = 0X01;		//设置波特率为115200
	SBAUDF = 0X87;              
}    

//发送数据
void Serial1_send_str( char* buf )
{
	while( *buf != 0 )
	{
		SBUF = *buf;
		while( TI == 0 );
		TI = 0;
		buf++;
	}
}

 至于SBAUDT和SBAUDF的取值参考数据手册,SBTH和DIV来自SBAUDT

技术分享图片

至于SBAUDT和SBAUDF的取值是怎么回事,手册里也有些,搜索文档“UART Timer Generated Baud Rates”这个章节就是具体介绍这两个寄存器取值的,具体公式这里就不深究了

ADE5169单片机串口通讯

原文:https://www.cnblogs.com/isyefeng/p/13202848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!