java pic 通信_dsPic33E:RS485通信问题
我在通过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通信问题相关推荐
- 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议
文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...
- RS485 通信与 Modbus 协议
文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...
- Java程序与串口的通信实现及调试
下面为大家介绍一下小编最近一个项目中,牵扯到与串口通信部分的实现及调试. 串口通信原理 串口通信指串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数 ...
- RS485通信如何设计EMC电路?
目录 1.RS-485标准 2.电磁兼容性 2.1.静电放电测试 2.2.电快速瞬变测试 2.3.电涌瞬变测试 3.通过/失败标准 4.瞬变保护 5.RS-485瞬变抑制网络 5.1.保护方案1 5. ...
- 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信
点击上方"蓝字"关注我们 今天为大家带来的是PLC与西门子触摸屏的RS485通信,RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485.R ...
- java的知识点34——线程通信 || 生产者与消费者问题
线程通信 应用场景:生产者和消费者问题 • 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 • 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待, ...
- gRPC中Java和node进行异构通信-互为客户端和服务端
场景 gPRC简介以及Java中使用gPRC实现客户端与服务端通信(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...
- fullcalendar 显示的时间间隔只有四十五分钟_NHR系列智能显示控制仪表RS485通信中应用...
请点击上方蓝字关注我们! 01 摘要 NHR系列智能显示控制仪表是经过多年开发制造经验而设计生产,集诸多全新功能于一身的新一代智能显示控制仪表.针对现场温度.压力.液位.速度.流量等各种信号进行采集. ...
- 简单的Java服务器和客户端的通信
系列文章: ESP8266的AP模式与STA模式简单测试 简单的Java服务器和客户端的通信 STM32 ESP8266和Java服务器透传模式下的双向通信 jsp向servlet传输数据 Servl ...
- STM32:RS485通信和Modbus通信协议汇总
RS485通信和Modbus通信协议汇总 1. 主从模式 RS-485上的软件层协议ModBus主要依赖于主从模式.主从模式是指在半双工通讯方式上,2个或者2个以上的设备组成的通讯系统中: (1) 至 ...
最新文章
- python调用另一个类的返回值_python – 在OpenERP中调用另一个表单的方法返回值
- 使Mybatis开发变得更加轻松的增强工具 — Ourbatis
- jenkins上linux-gradle机器对android执行shell签名apk
- linux平台下通过mcr方式从c++程序中调用matlab函数
- chartjs和echartsjs库简介
- 解决左下角没有显示桌面图标
- 技本功丨用短平快的方式告诉你:Flink-SQL的扩展实现
- JAVA中文件指针复位到文件开头
- 表格存储如何实现跨区域的容灾
- 顺序表查找及其优化(Java)
- Java从入门到精通 第11章 枚举
- 如何删除下一页分节符_Word中批量删除分节符的方法
- matlab nan变成0_最优化计算与matlab实现(17)——粒子群优化算法——带压缩因子的粒子群算法...
- 深度学习中需要的矩阵计算
- UNIX环境高级编程-环境配置
- opencv-python DIS光流
- 癌症专家推荐:揭秘抗癌果蔬排行18强(组图)
- 【精英会会长、TOS顾问黄智中:区块链将改变价值传递方式】GBCAX
- HTTP代理ip的API接口怎么用?
- docx poi 原理_使用POI读写word docx文件
热门文章
- 通俗易懂!视觉slam第五部分——slam数学表示二
- 腾讯广告算法大赛已启动,逆向算法,等你来战
- 0顶会入场大厂算法岗的正确姿势(干货总结)
- 个性屏幕保护程序_Mac高清鸟瞰屏幕保护程序,酷毙了
- 跨境电商独立站最大的难题是没有免费的自然流量?
- 第十九:如何在Windows下把Allure2与Jenkins的集成生成自定义的测试报告(重点超详细)
- 《手把手教你》系列基础篇之4-python+ selenium自动化测试-xpath使用(详细教程)
- 游戏王血计算机,【统计】历代主角控血一览
- 卡住 安装_【书中有路】弹簧式安全阀结构原理、故障解析、安装要点
- mybatis 三级缓存查询循序_MyBatis手把手跟我做系列(五) --- 一级缓存与二级缓存