完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
就是两个一起挂到总线的时候,发送一号从机数据,一号响应,但是再发二号数据二号就不响应了,重新上电复位的话,先发第二个从机的数据第二个正常工作第一个没反应,总是先发谁谁先工作另一个死掉。求大虾帮忙,下面是一部分程序 我觉得应该出现在这个地方 希望做过的而朋友给点解决方案,谢谢
while(1) { CLRWDT(); if (recdata_flag == 0) { //烧写程序时根据从机地址屏蔽相应的程序段 if (recdata_buf[1] == mcu_id_1) { //vprintf("从机1地址正确t"); switch(recdata_buf[2]) { case 0x02: modbus_function_id1_1(); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; case 0x03: modbus_function_id1_2(); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; default: //vprintf("从机1功能码错误,请重新输入tn"); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; } } /*if(recdata_buf[1] == mcu_id_2) { //vprintf("从机2地址正确t"); switch(recdata_buf[2]) { case 0x02: modbus_function_id2_1(); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; case 0x03: modbus_function_id2_2(); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; default: vprintf("从机2功能码错误,请重新输入tn"); recdata_flag = 1; recdata_size = 1; RCIE = 1; break; } }*/ else { vprintf("地址错误,请重新输入tn"); memset(recdata_buf , 0, 10); recdata_flag = 1; recdata_size = 1; RCIE = 1; } } } } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2102 浏览 1 评论
3665 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2353 浏览 2 评论
2779 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4066 浏览 5 评论
1010浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6395浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 00:04 , Processed in 0.547125 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号