我在通过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. 公告三大“罪状”,无人驾驶公司Roadstar联合创始人被罢免
  2. windows tensorrt python
  3. K8S批量scale deploy的副本为0,结合xargs -I使用
  4. 立个flag,一个月之内把知识点整理完,放到博客
  5. 测试人员,今天再不懂BDD就晚了!
  6. 完美!解决无法启动承载网络的问题
  7. 红帽linux企业版6的进程,红帽企业版 Linux 6 设备映射多路径
  8. 配置nginx负载均衡
  9. 猪年适合学什么编程语言?
  10. windows7系统iis安装不了应该怎么办
  11. OA系统概要设计文档
  12. 题解 JZOJ 1354.土地购买
  13. 最大最小次序统计量密度函数的推导
  14. 【Angular中的RxJS】- Subject 分类介绍
  15. (极值点偏移问题的几种方案)已知$\dfrac{\ln x_1}{x_1}=\dfrac{\ln x_2}{x_2}$,求证:$x_1+x_22\text{e}$....
  16. 用python玩转数据测试答案_MOOC_用Python玩转数据_测试答案
  17. SEO高工资,你需要掌握什么能力?
  18. Java 实现重试机制
  19. RetinaNet Examples:NVIDIA 一站式训练、推理及模型转换解决方案
  20. 第十二届蓝桥杯软件类模拟赛python程序设计 第二期(6)平行四边形面积

热门文章

  1. 未定义标识符CV_HAAR_SCALE_IMAGE
  2. 5-1 File Transfer
  3. 敢闯会创,第七届中国国际“互联网+”双创大赛腾讯广告产业命题等你来战!
  4. ssh 隧道 mysql_利用SSH隧道方式连接远程MySQL服务器
  5. eclipse项目如何变成web项目_IntelliJ IDEA 部署 Web 项目,终于搞懂了!
  6. 上海工程技术大学c语言试卷,上海工程技术大学2009-2010C语言试卷A.doc
  7. python中的yield使用详解
  8. leetcode 870.优势洗牌
  9. 【msdn wpf forum翻译】获取当前窗口焦点所在的元素
  10. python2.7更新python3.6_python2.7升级到python3.6注意事项