快捷搜索:  

,如何串口中断同时发送数据吗

广告

RS485由于是半双工方式的总线,为了防止总线上的竞争一般只能有一台主机,并且采用一次主机询问,一次从机应答的方式。但是有的时候,我们确实需要多台主机去监控多个RS485设备,比如需要两台电脑都可以监控相同的几个RS485设备,而且最好共用RS485总线,我有一个想法解决这一问题,参照CAN总线的侦听机制,发送数据时,把总线上的数据采样回来,接收的数据与发送的数据不一致时,结束发送,主动避让。

1、关于串口中断发送的问题。

//创建一个串口通讯SerialPortCurrentPortnull;CurrentPortnewSerialPort();CurrentPort.ReadBufferSize128;CurrentPort.PortNamecomName;//端口号CurrentPort.BaudRatebandRate;//比特率CurrentPort.Parityparity;//奇偶校验CurrentPort.StopBitsstop;//停止位CurrentPort.DataBitsdatabit;//数据位CurrentPort.ReadTimeout1000;//读超时,即在1000内未读到数据就引起超时异常//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理CurrentPort.DataReceived+Sp_DataReceived;CurrentPort.Open();定义一个变量byte[]receiveStr;//绑定的事件处理函数。

2、请教51单片机使用串口中断发送和非中断发送有

51单片机串口发送数据,有两种方式,中断方式和查询方式。就发送数据的结果而言没有任何区别,也都很简单容易。要找区别,中断方式适合于稍复杂的系统,单片机执行程序需要完成的任务比较多,就不能采有查询方式发送,这样会白白浪费单片机大量的时间而影响完成其它任务了。所以,中断方式,节省单片机的时间,效率是最高的,也是正式产品采用的方式。

3、stm32串口发送数据,用中断怎么发送?能举个例子吗

intUART_WriteBuf(u8byCom,u8*pBuf,u16Len){inti0;if(Len0)return0;switch(byCom){case1:Uart_data.send_lenLen1;Uart_data.j1;memmove(Uart_data.send_buff,pBuf,Len);USART_ITConfig(USART1,

ENABLE);USART_SendData(USART1,*pBuf);break;case2:Uart_data.send_lenLen1;Uart_data.j1;memmove(Uart_data.send_buff,pBuf,Len);USART_ITConfig(USART2,USART_IT_TC,ENABLE);USART_SendData(USART2。

您可能还会对下面的文章感兴趣: