我在通过RS485端口串行通信时遇到问题 .

我正在使用带有Max485的dsPic33E微控制器 .

使用断点我分析了每当我发送 "0x00" 到控制器时,收到 "0xFF" . 然后我发送 "0x01" , "0xFD" 在控制器上收到 . 依此类推 .

此外,我尝试使用环回逻辑,意味着发送回收到的字符,但每次我收到 "0x00" 任何发送的值 .

我无法解决这个问题 . 下面是我正在使用的代码的快照:

// RS485

TRISBbits.TRISB6 = INPUT_PIN; // RX - RB6/RP38 PIN<42>

TRISBbits.TRISB7 = OUTPUT_PIN; // TX - RB7/RP39 PIN<43>

TRISBbits.TRISB8 = OUTPUT_PIN; // !RE/DE Control Pin RB8/RP40 PIN<44>

// RS485 Config

#define RS485_TX PORTBbits.RB6 // RS485 Transmitter

#define RS485_RX LATBbits.LATB7 // RS485 Reciever

#define RS485_CTRL LATBbits.LATB8 // RS485 Control Pin

void __attribute__((interrupt, no_auto_psv)) _U4RXInterrupt(void)

{

rs485Char = U4RXREG;

RS485_CTRL = 1; // Enable driver

U4TXREG = rs485Char;

RS485_CTRL = 0; // disable driver RE/DO

}

void InitClock( void )

{

PLLFBD = 63; // M=65

CLKDIVbits.PLLPOST = 0; // N2=2

CLKDIVbits.PLLPRE = 0; // N1=2

// Initiate Clock Switch to FRC oscillator with PLL (NOSC=0b001)

__builtin_write_OSCCONH(0x01);

__builtin_write_OSCCONL(OSCCON | 0x01);

// Wait for Clock switch to occur

while (OSCCONbits.COSC!= 0b001);

// Wait for PLL to lock

while (OSCCONbits.LOCK!= 1);

}

void InitRs485(void){

// configure U1MODE

U4MODEbits.UARTEN = 0; // Bit15 TX, RX DISABLED, ENABLE at end of func

U4MODEbits.URXINV = 1; // 1:URXINV Idle state is '0' ; 0=UxRX Idle state is '1';

U4MODEbits.ABAUD = 0; // Bit5 No Auto baud (would require sending '55')

U4MODEbits.BRGH = 0; // Bit3 16 clocks per bit period

U4MODEbits.PDSEL = 0; // 0 : 8 bit,no parity; 1 : 8 bit,even parity; 2 : 8 bit,odd parity; 3 : 9 bit,no Parity

U4MODEbits.STSEL = 1; // 1 : 2 Stop bits; 0 : 1 Stop bits

// Load a value into Baud Rate Generator.

U4BRG = BRGVAL_RS485; // 60Mhz osc, 9600 Baud

// Load all values in for U1STA SFR

U4STAbits.UTXISEL1 = 0; // Bit15 Int when Char is transferred (1/2 config!)

U4STAbits.UTXISEL0 = 0; // Bit13 Other half of Bit15

U4STAbits.UTXINV = 1; // 1:UxTX Idle state is '0' ; 0=UxTX Idle state is '1';

U4STAbits.UTXBRK = 0; // Bit11 Disabled

U4STAbits.UTXEN = 0; // Bit10 TX pins controlled by peripheral

U4STAbits.URXISEL = 0; // Bits6,7 Int. on character received

IPC22bits.U4RXIP = 7;

IPC22bits.U4TXIP = 7;

IFS5bits.U4TXIF = 0; // Clear the Transmit Interrupt Flag

IEC5bits.U4TXIE = 1; // Enable Transmit Interrupts

IFS5bits.U4RXIF = 0; // Clear the Receive Interrupt Flag

IEC5bits.U4RXIE = 1; // Enable Receive Interrupts

RPOR2bits.RP39R = 0x1D; // dsPic33EP512GM604 => RP39 as U4TX PIN<43>

_U4RXR = 38; // dsPic33EP512GM604 => RP38 as U4RX PIN<42>

U4MODEbits.UARTEN = 1; // And turn the peripheral on

U4STAbits.UTXEN = 1;

// Hardware control bits

RS485_CTRL = 0; // disable driver

IEC5bits.U4RXIE = 1;

}

int main(int argc, char** argv) {

InitClock(); // This is the PLL settings

InitPorts(); // Configure all Input/Output Ports

InitUarts(); // Initialize UART1 for 9600,8,N,1 TX/RX

Rs485Initialise( 0x10, 0x10);

while( 1 )

{

}

return (EXIT_SUCCESS);

}

这是一个测试代码 . 实际通信将使用Modbus协议 . 请帮我纠正这个问题 .

java pic 通信_dsPic33E:RS485通信问题相关推荐

  1. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  2. RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  3. Java程序与串口的通信实现及调试

    下面为大家介绍一下小编最近一个项目中,牵扯到与串口通信部分的实现及调试. 串口通信原理 串口通信指串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数 ...

  4. RS485通信如何设计EMC电路?

    目录 1.RS-485标准 2.电磁兼容性 2.1.静电放电测试 2.2.电快速瞬变测试 2.3.电涌瞬变测试 3.通过/失败标准 4.瞬变保护 5.RS-485瞬变抑制网络 5.1.保护方案1 5. ...

  5. 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信

    点击上方"蓝字"关注我们 今天为大家带来的是PLC与西门子触摸屏的RS485通信,RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485.R ...

  6. java的知识点34——线程通信 || 生产者与消费者问题

    线程通信 应用场景:生产者和消费者问题 • 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 • 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待, ...

  7. gRPC中Java和node进行异构通信-互为客户端和服务端

    场景 gPRC简介以及Java中使用gPRC实现客户端与服务端通信(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...

  8. fullcalendar 显示的时间间隔只有四十五分钟_NHR系列智能显示控制仪表RS485通信中应用...

    请点击上方蓝字关注我们! 01 摘要 NHR系列智能显示控制仪表是经过多年开发制造经验而设计生产,集诸多全新功能于一身的新一代智能显示控制仪表.针对现场温度.压力.液位.速度.流量等各种信号进行采集. ...

  9. 简单的Java服务器和客户端的通信

    系列文章: ESP8266的AP模式与STA模式简单测试 简单的Java服务器和客户端的通信 STM32 ESP8266和Java服务器透传模式下的双向通信 jsp向servlet传输数据 Servl ...

  10. STM32:RS485通信和Modbus通信协议汇总

    RS485通信和Modbus通信协议汇总 1. 主从模式 RS-485上的软件层协议ModBus主要依赖于主从模式.主从模式是指在半双工通讯方式上,2个或者2个以上的设备组成的通讯系统中: (1) 至 ...

最新文章

  1. python调用另一个类的返回值_python – 在OpenERP中调用另一个表单的方法返回值
  2. 使Mybatis开发变得更加轻松的增强工具 — Ourbatis
  3. jenkins上linux-gradle机器对android执行shell签名apk
  4. linux平台下通过mcr方式从c++程序中调用matlab函数
  5. chartjs和echartsjs库简介
  6. 解决左下角没有显示桌面图标
  7. 技本功丨用短平快的方式告诉你:Flink-SQL的扩展实现
  8. JAVA中文件指针复位到文件开头
  9. 表格存储如何实现跨区域的容灾
  10. 顺序表查找及其优化(Java)
  11. Java从入门到精通 第11章 枚举
  12. 如何删除下一页分节符_Word中批量删除分节符的方法
  13. matlab nan变成0_最优化计算与matlab实现(17)——粒子群优化算法——带压缩因子的粒子群算法...
  14. 深度学习中需要的矩阵计算
  15. UNIX环境高级编程-环境配置
  16. opencv-python DIS光流
  17. 癌症专家推荐:揭秘抗癌果蔬排行18强(组图)
  18. 【精英会会长、TOS顾问黄智中:区块链将改变价值传递方式】GBCAX
  19. HTTP代理ip的API接口怎么用?
  20. docx poi 原理_使用POI读写word docx文件

热门文章

  1. 通俗易懂!视觉slam第五部分——slam数学表示二
  2. 腾讯广告算法大赛已启动,逆向算法,等你来战
  3. 0顶会入场大厂算法岗的正确姿势(干货总结)
  4. 个性屏幕保护程序_Mac高清鸟瞰屏幕保护程序,酷毙了
  5. 跨境电商独立站最大的难题是没有免费的自然流量?
  6. 第十九:如何在Windows下把Allure2与Jenkins的集成生成自定义的测试报告(重点超详细)
  7. 《手把手教你》系列基础篇之4-python+ selenium自动化测试-xpath使用(详细教程)
  8. 游戏王血计算机,【统计】历代主角控血一览
  9. 卡住 安装_【书中有路】弹簧式安全阀结构原理、故障解析、安装要点
  10. mybatis 三级缓存查询循序_MyBatis手把手跟我做系列(五) --- 一级缓存与二级缓存