数码之家

 找回密码
 立即注册
搜索
查看: 4276|回复: 23

[C51] STC15W204S单片机通讯求助

[复制链接]
发表于 2020-11-9 17:17:11 | 显示全部楼层
本帖最后由 慕名而来 于 2020-11-9 17:19 编辑

STC单片机用STC_isp软件直接生成代码呀,另外单片机芯片数据手册的例程也很方便移植的。


//======串口设置函数[url=]///2400bps@11.0592MHz[/url]========
void uart_init(void)
{
SCON = 0x50;  //8位数据,可变波特率
AUXR |= 0x01;  //串口1选择定时器2为波特率发生器
AUXR |= 0x04;  //定时器2时钟为Fosc,即1T
T2L = 0x80;  //设定定时初值
T2H = 0xFB;  //设定定时初值
AUXR |= 0x10;  //启动定时器2
}
//=========================================
void uart_ser()interrupt 4
{
RI=0;
if(SBUF==0xFF11)//你的指令
{
////////////你的控制输出
}
}
//=================================
void main()
{
uart_init();
EA=1;
ES=1;

while(1)
{

}
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-10 10:37:28 | 显示全部楼层
flishmen 发表于 2020-11-9 17:33
别误导人家,接受字段是两个字符。这中断只是一个字符接受完成就会触发。
需要判定一下,还要用到缓冲区 ...

对于批评我欣然接收,也谢谢你的拨乱反正,其实我也只是随意在自己的工程里复制了一段做个示例,没有经过验证,也希望看到你的完整代码用来学习。
回复 支持 反对

使用道具 举报

发表于 2020-11-10 10:42:37 | 显示全部楼层
312439374 发表于 2020-11-9 21:00
太感谢了,我试试哈

抱歉,忘了串口发送接收的是8位数据的问题了,如果将开关指令改成8位的(例如:0xf0,0xf1)或许就简单多了,我的代码不能直接判断0xFF11的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-29 20:16 , Processed in 0.156001 second(s), 8 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表