找回密码
 注册
关于网站域名变更的通知
查看: 4198|回复: 0
打印 上一主题 下一主题

ModBus_RTU(4组串口任选+DMA传输的主从机)的lib库使用,STC32实现

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-11-25 16:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 岁月如歌21 于 2025-11-25 17:11 编辑
: y2 ~) @0 L+ K) S/ i! K2 o" N/ B! |" D1 R) c' b5 g/ b
ModBus_RTU(4组串口任选+DMA传输的/机)的lib库使用,STC32位8051实现. D8 l2 U( {% m9 @% O
一、准备好自己的代码工程
/ a3 O2 L! B9 G, I; U: h# G' N这里以STC32位8051的点灯工程为例
1 N" ]* a( ~! h: E3 i' S

5 z0 P9 q4 M8 n: B- i/ u" |/ m编写该代码,可以看到这个0错误,下载进去之后可以看到屠龙刀板子上的P2端口的8个LED开始闪烁,表示这个代码工程无问题
) ~* J% e' v3 d- i' i6 W* _  h- u# ]( P; X8 P& o

: L- k8 c  d6 A0 h二、添加库文件到自己的工程里里0 I! S& K, g  h8 q- F' J( h, V
1.添加附件代码包到工程里
# _" e: \/ q1 f3 }+ m9 W8 N
, b% c8 R8 ^1 F; g1 Q
2.然后按照如下方法调用一下头文件的路径
* m( G: n6 f' U- s; a
' B2 n2 @( d2 g7 L/ U0 K" [
3.将库文件添加到工程列表+ ~: |& M2 F7 }2 Q9 ^
' M7 {- N) n4 l* ^3 F9 P" n% o
4.修改配置文件5 I, Z% S2 b: v4 ~7 ?% g7 V
4.1头文件2 [+ A# F' B# ~2 o6 {: y9 B
* a3 s& ?  o8 K  v2 b9 r: p5 |
确认自己工程里的stc32的头文件是否是这个,不是的话修改位自己的头文件9 N1 C2 U6 N2 c5 @& I/ @
% Z; s; s  @6 H$ G% Z( I) Q
4.2系统时钟
: R6 I, m4 j9 C8 D6 F8 O# x; h2 N
" ~! l7 ]+ R" s, v# i9 V. R/ v* z
因为用到了串口,在115200的波特率下,我一般用这个系统时钟,后面所有要使用系统时钟的地方均需要调用config.h,调用这个MAIN_Fosc的宏来获取系统时钟,* D6 T9 U" f: C

1 B+ e5 z5 B. _由于原来的工程里也有,且宏定义名称都一样,所以只需要把这个宏删掉,然后修改调用的头文件为config.h即可4 p  Y1 }0 }7 r+ T

* q* Z, R, R) d! M3 ]4.3宏定义
3 z1 a0 C/ {' ~. D6 f* H" S& R

7 n$ ^/ |4 [3 q( H2 A% Q' a" j' P- \  U如果自己的工程里也有这部分的宏定义,可以屏蔽自己的,统一调用这个config.h来获取数据。) ]8 m4 n. V0 q& m: X- P
5 m% Q# B5 R2 B) c9 F' O

# v- T8 S4 v& D5按照如上的代码改完,工程应该可以编译通过了) h" |6 `# ]2 A" o
$ m6 s& W' K3 `0 C$ `5 H
可以看到工程已经0错误,0警告了3 q2 A  w$ {9 \0 a" {1 T$ t- I9 S' a
( C. N1 {' c2 N- i+ X1 _( [
三、开始测试串口收发的代码
) l4 ~1 J8 _7 z5 J1添加系统时钟计时变量' w/ V5 r- Z6 j: C# ~
( N9 |/ ^0 {7 p$ P. q% X
主函数添加这一变量,用来记录系统运行的上一次的时刻
1 n& j0 m& L3 y  C, v. s6 o! t# X7 E
2.添加头文件到代码里
& o+ u' \' H$ d( w

- b9 ^0 r+ U, u/ [这个是串口和485口的配置头文件,配合lib文件一起使用的4 s1 l- k2 u& E! S1 m1 D; X7 D  e4 ?

% B7 n% }, d; s  n: K$ F& v" d* K3选择串口的参数5 O) j7 {  X5 ?. B/ G0 E+ x
* F% u  m$ J3 w" o% ~
记得最后在工程里添加串口初始化的函数哦!!
+ Y* e  d% P( A6 ~! T- H; v! `) Y& k8 C3 Q. r$ j
4.编写如下的串口处理代码! [) ~: T/ b: t" d) A. t3 y, W

' o4 i5 n( x; G4 ?
' B5 P1 L) J+ G. [" X# B% Q6 j, \3 K3 D; O8 f. G0 u+ C
/ M4 [, X( c. A4 I0 w
# r( M8 P# c/ ^: h

' Z0 B0 \- V: t+ f" ]! V" H! l) C  i0 C+ r! q

- }: B  N) j$ B9 w: }

! |/ \1 x. Q' o% K! E' `& I* M% o; t3 D# D

" }3 ]# w1 L& C' j, |/ C2 P. Z% b) ^6 K3 r8 G9 P) R* q. v
% x% n, n3 O5 Y# W0 `7 h

$ o9 m* `9 Z; {2 s- E+ Q& m
  F+ x3 P) C! d* ~0 F$ K9 e& o
8 G2 y" j- ?/ |& z& y9 t+ B: V

% ~, {6 w: j$ n' l2 M0 s( @: O' r7 `4 u# G/ S4 _& D5 t2 `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2026-4-18 17:13 , Processed in 0.093750 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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