完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在使用CAN总线1个主机给2个从机发送数据,数据是电机的转动圈数,每个从机都控制一个直流电机,从机的电机执行完转动圈数后给主机一个信号,表示从机执行完这组数据了,主机接受到这个信号后再给从机发送下一组数据让两个电机同时运动,2个电机的圈数是一 一对应的。要求是必须每个电机都执行完上一组的数据后,主机才能 同时 给2个从机发送下一组数据,现在的问题是 每个电机的转动圈数是不同的也就是说 每个从机给主机的这个 执行完 信号并不是同时到达主机的,怎么才能让主机给2个从机同时发送信号呢?
我自己写了个程序但是没有实现我想要的功能 i f ( 从机1执行完信号 && 从机2执行完信号 ) { 给从机1发送数据; 给从机2发送数据; } 我的其他想法是能不能使用 while()进行等待,不知道行不行 想请各位大佬来指点指点小弟,感激不尽! |
|
相关推荐
5个回答
|
|
【方法一】
增设一个状态变量 ,假设 state = 0。 每接收到一个从机的执行完成回复,state+1 当state>=2的时候说明2个从机都回复了,清零state = 0 ,发送下一个运动的命令。 【方法二】 增设2个状态变量,state_can1 , state_can2 CAN1回复了,state_can1 = 1 ;CAN2回复了state_can2 = 1。 当state_can1和state_can2都为1的时候,清零2个状态变量,同时发送下一个命令。 |
|
1 条评论
|
|
你先找本书读读,看看if和while怎么用再说
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1049 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1017 浏览 2 评论
2123 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1219 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1639 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:08 , Processed in 1.205772 second(s), Total 115, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号