PIC单片机与电脑通过modbus485通信来传输数据

有一个modbus.c文件定义了modbus协议的基本内容,且UART1B的收发端连485转换之后连接电脑,现在需要通过电脑发送一条指令读取寄存器上的数据。
举个例子:我往modbus协议地址0x0001写入数据SetRegister(0x0001,UA);
之后电脑往UART1B接收端发一条读寄存器指令:01 03 00 01 00 01 D5 CA (保护设备地址,功能码,寄存器首地址,寄存器读取个数,CRC),UART1B接收到一个字节中断一次
void __ISR(_UART_1B_VECTOR, IPL6SOFT) IntUart1BHandler(void) //
{
if (INTGetFlag(INT_SOURCE_UART_RX(UART1B)))
{
INTClearFlag(INT_SOURCE_UART_RX(UART1B));
if (UARTReceivedDataIsAvailable(UART1B))
{
RecBuff[rec1b_cnt ++] = UARTGetDataByte(UART1B);
之后我就不会写了,写入数据SetRegister(0x0001,UA)这条指令我不知道应该放在哪,之后如何经过modbus协议读出寄存器值通过modbus协议的数据包形式发回给计算机

1个回答

各位大神快来啊,求解答,这个任务好急

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问