|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' M, a; U' H4 }/ C `mcu:AT32F403ARCT7
4 s& M# h. O9 A: ], ?6 `; EFinSH连串口1$ `5 f& }$ T$ f9 n
RS485连串口2 @' m/ b5 y* X
用RT-Thread Studio创建工程后,加入FreeModbu slave组件,编译通过,在进行调试过程中出现以下的问题,希望各位大佬赐教。3 ~5 W! C$ V9 ?6 G
问题一、用UartAssis.exe软件模拟Modbus主机0x03功能读取从机数据正常
1 s: I2 N* k+ v
- l; r, ]8 L0 U c: Z7 C但用Modbus Poll.exe进行调试时却出现这样的情况+ r+ g6 H P0 e7 K/ F
# i: ~* e3 s0 A- @9 m3 Y, w1 m
这问题不知从何入手进解决?实际应用时是与PLC(主机)联机。$ }8 c5 K: c# w. g
1 w2 p( l3 }+ a. c
问题二、长时间运行时会出现死机现象,FinSH输出如下信息
8 ^! h/ t0 J( G |8 G
) ~8 x. v8 k5 M追踪源码: @( p G" ^ {+ v9 z& w
6 I4 o% }: x+ t4 \5 ~3 ^, Q% w
void rt_assert_handler(const char ex_string, const char func, rt_size_t line)
8 \. a+ f* Z: r9 a) P{
: t0 j1 k* Q7 @2 X# Svolatile char dummy = 0;
4 }; ~, Z, S4 v& M" `
3 Z" f5 w6 H( f! Hif (rt_assert_hook == RT_NULL)
4 r% A; Q' M U4 K2 \{
! l/ Y; A7 @) |ifdef RT_USING_MODULE
9 `% p& |$ b' O5 L! Z; V+ W. Uif (dlmodule_self())2 l5 k, t" E. l1 y$ e J v, B
{, D- ~! r& x' E+ s K! y
/* close assertion module */
0 E3 P4 b' k) hdlmodule_exit(-1);2 s& B% ~# o) k r
}
- I, s8 O m+ l F" I8 uelse, K4 l' W! _8 P' U# q; b- J$ w
endif& j- u/ g# f8 ^( p$ U* {9 u
{
- x% y1 I6 @5 ort_kprintf("(%s) assertion failed at function:%s, line number:%d \n", ex_string, func, line);
; ]! U! s3 c$ o p5 Zwhile (dummy == 0);) H/ P) R4 h- @" m
}
) g; C3 {1 k, K% Y& a8 o; N B) l}
% c5 ]3 [3 X( U4 Uelse
5 b+ }# S; }) E{
) q% W7 O' t# k7 I) ]rt_assert_hook(ex_string, func, line);
: C/ F& ^; C* L! O}
5 O8 ~5 A p; }/ Q( W0 e- L4 r}
" h7 g' U0 T& r5 j8 [: r# T0 w; _6 _. G# O6 N G" r( B
另在UartAssist.exe调试窗口发现从机响应报文中的CRC码有错
5 a' |( W, I) X( A7 {/ D( j$ E* ?3 [1 j$ ]7 @
正确的响应报文应是:01 03 06 00 00 00 00 00 00 21 F5
x* C. z4 t; j& T, X2 J0 ~# i s, s* c; k* Y6 z
出现这现象有些板频繁些,有些板很长时间也没出现,现在我暂时用加入看门狗的方法来解决,但我也希望能切底弄清是什么原因? T1 T, H9 f+ E* ?. R5 T# o
6 O/ b& D9 k: L2 W) A6 U" r' R, f
问题三、我现Modbus串口的波特率是38400,再高就出错了,用UART TTL和RS485都是一样。
8 v3 ~2 _* C2 u2 _0 V3 ^" c4 N! V4 [ ] `$ m
但我用雅特力的DEMO板加上我自己做的扩展板,Modbus同样是采用串口2,用UART TTL波特率可到115200,但用RS485也只能到38400,我的接口芯片是SP3485SE EE(与这个有关吗?)
2 y9 K0 ~7 s* U8 D" c3 J
2 n, C5 u$ f9 |, ]) r/ i
# g8 ~7 h* d3 v* I |
|