rt-thread3.1.3的qemu-vexpress-a9使用modbus client的问题

6 天前 [复制链接] 5 71

1金钱
把rt-thread3.1.3所带的bsp\qemu-vexpress-a9配置为modbus client,编译出错:8 X1 l$ s4 Z$ _
$ scons# v" s( q5 P1 V/ O, i6 e2 x, G
scons: Reading SConscript files ...( }2 k+ H- S  V- G) q& I
scons: done reading SConscript files.3 @" F# N4 I& l; Y5 X, S
scons: Building targets .../ A5 J9 {- a1 c! Q# @0 R
scons: building associated VariantDir targets: build
& ~% @+ t& Z/ O9 ?4 e5 e& tCC build\kernel\components\net\freemodbus\port\portserial.o
1 H& \% T4 E; A6 A0 s& _1 ^( d$ z; vD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'vMBPortClose':
- y# D, r4 {  ?) HD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:159:19: error: 'struct rt_device' has no member named 'close'. t# h" _; p2 K) D
     serial->parent.close(&(serial->parent));6 B. n/ ~2 y' `2 P; X
                   ^
- E* v2 L6 T1 i! yD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'xMBPortSerialPutByte':
/ `) |8 z7 M5 d8 \* JD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:164:19: error: 'struct rt_device' has no member named 'write'
6 G3 y9 Z9 A. A4 y     serial->parent.write(&(serial->parent), 0, &ucByte, 1);
9 H( x, P  o( U% {; N                   ^. [3 F/ Z8 |: w, _& k; N" A% A
D:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'xMBPortSerialGetByte':
; x  K9 }) D7 i" S% G7 [0 AD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:170:19: error: 'struct rt_device' has no member named 'read'
  L# \% F! D7 N' o6 D" ?     serial->parent.read(&(serial->parent), 0, pucByte, 1);1 B( N, Z4 D6 C' r
                   ^
9 E$ ?" B) q# K* q& _# jscons: *** [build\kernel\components\net\freemodbus\port\portserial.o] Error 1- i( l0 w3 I8 N
scons: building terminated because of errors.& T% h) Z3 x9 N& L/ }
0 @; b- Q$ K$ b: \! q: J

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 6 天前 | 显示全部楼层
serial->parent.read(
: b: i) `9 M* Y8 X: D) ^# k
建议修改为  rt_device_read
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
这样不是把modbus这个软件包给改了?其他的bsp用modbus的时候怎么办?
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
本帖最后由 xddl00 于 2019-11-9 14:32 编辑
0 |" x6 o/ p0 O' M8 B- k0 p/ {- H: X7 ~  |) m! s
void vMBPortClose(void)8 Y( a$ {# B) Q( x# t
{
3 m( A9 E) q4 c5 K- N    rt_device_close(&(serial->parent));8 l) \5 p, K  S: h
}
' t, a# I* ^- Z. V5 F: P, i5 r6 q, ^, p0 G8 b8 r! P" B" _
BOOL xMBPortSerialPutByte(CHAR ucByte)0 n1 |9 v! `/ `, a- d5 f
{3 `( M8 [$ B3 D  u7 u
    rt_device_write(&(serial->parent), 0, &ucByte, 1);6 Z* N: O$ Q! t! C- i6 {
    return TRUE;
* e0 T8 @% U/ R8 C}
0 y7 i0 ]2 U1 t: H) p6 B5 V3 x" e, V- p# |
BOOL xMBPortSerialGetByte(CHAR * pucByte)7 c- E( X2 e5 h4 A4 f- G3 V- k
{
! ~$ B* {# E  ]9 {    rt_device_read(&(serial->parent), 0, pucByte, 1);
5 y# x% l7 Z8 t1 ?/ m4 D% o    return TRUE;
7 }( k& o3 n9 r) A$ i}
+ ]8 ~/ D' X8 r9 X# f' }$ ]
使用道具 举报 回复
发表于 4 天前 | 显示全部楼层
xddl00 发表于 2019-11-9 14:20
; ~) R3 R& B4 K0 V5 E/ s1 z这样不是把modbus这个软件包给改了?其他的bsp用modbus的时候怎么办?
: X3 i- U. b% d$ G( U9 @2 e
一般不建议直接去操作数据结构中的成员变量的,能够用函数接口就用函数接口。) Y" I8 v) y) I% ]8 |# `* B* X
. X7 u, ~2 j: ?1 T: H. w$ k- ~7 y
确实需要这样修改,可以到对应的软件包上发PR
使用道具 举报 回复
发表于 4 天前 | 显示全部楼层
虽然改了 rt_device_read后可以编译,但是运行后,modbus报超时,说明没通上,而且shell好像也没反应了。看来qemu-vexpress-a9只是网络调的比较好,其他的,暂时还不行
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表