stm32F103 的UART5怎么用?

发表在 UART2018-5-2 18:57 [复制链接] 13 2987

大家好,因为板子要用到比较多的串口,所以需要将uart5也用起来。8 s( G) F5 O2 j1 m
看了代码,发现uart1-4都是用到了DMA,uart5是不支持DMA的,
! S0 n- G! b: W% a  z& o8 [1 t那uart5口怎么用?是否可以提供一下代码,谢谢& k& t$ P6 S0 W( _
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2018-5-2 19:23:21 | 显示全部楼层
使用中断
使用道具 举报 回复
发表于 2018-5-2 19:34:42 | 显示全部楼层
使用中断收发就可以了
使用道具 举报 回复
发表于 2018-5-3 09:23:58 | 显示全部楼层
重点是有没有代码可以提供一下
使用道具 举报 回复
发表于 2018-5-3 11:33:44 | 显示全部楼层
  1.     rt_hw_serial_register(&serial1, "uart1",
    6 [" \; o  Z- i
  2.                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX |
    # E0 v. p8 h4 p5 ^
  3.                           RT_DEVICE_FLAG_INT_TX |   RT_DEVICE_FLAG_DMA_RX,! ]4 i* t0 ?. x" n. c/ [- G: Y7 H
  4.                           uart);+ @7 s4 `3 w) s( ]' Z
复制代码
0 k3 O  T8 V8 [6 |- U
注册的时候把 RT_DEVICE_FLAG_DMA_RX 去掉,打开的时候不要加  RT_DEVICE_FLAG_DMA_RX,其他抄一下
使用道具 举报 回复
发表于 2018-5-3 13:47:29 | 显示全部楼层
感谢
- P; A% w" m' ~8 N4 Y) `  S* [
使用道具 举报 回复
发表于 2018-10-22 18:53:59 | 显示全部楼层
问一下,你的改好没有?我改的可以发送,但一接收就死机:
& d( o7 m2 Y% }* y$ J, \$ Wmsh >/ s  ?' s8 Y( p# ]7 _5 Q5 ~
msh >psr: 0x81000045' h# l/ F1 O; E7 R
r00: 0x20000708
8 x1 G( K+ v& K  _5 F4 N4 ar01: 0x200002f0) x( C1 H7 r* m4 y/ N  c: t
r02: 0x20001758
7 m  {5 s9 S7 Zr03: 0xffffffff$ L1 j" ^- H8 N+ [5 C
r04: 0x00000001
/ F2 y5 T$ _' R' q3 d' k$ Lr05: 0xdeadbeef
% `/ f* h; @2 Y0 |8 H0 k. \( w3 @r06: 0xdeadbeef' q; g$ b4 U4 N% l& B7 V  [( a1 W# Y' F
r07: 0xdeadbeef
; M0 d& R! z( D5 K3 Zr08: 0xdeadbeef0 v. |# p, l# W4 o' j
r09: 0xdeadbeef+ g9 m& e% N5 U  D- K
r10: 0xdeadbeef
+ x" n) [% b2 [r11: 0xdeadbeef5 `" u0 L8 K* M6 e* x- z& T7 A2 g$ i
r12: 0x000000005 V/ g" O$ B/ e6 p( _* K% W) P1 q
lr: 0xfffffffd
1 i5 z* o$ W2 G# ^. L pc: 0xbf180f00
' {- K3 y2 ~+ f' m* ^1 uhard fault on handler
- y; J4 z& r% Z& M+ c! }- ]  M1 y# y# a. X/ R" Z# l- G1 T
mem manage fault:) c2 T: q$ D1 o
SCB_CFSR_MFSR:0x01 IACCVIOL
- a# q: L; p& ?* B7 Y4 ^: G8 `# H  ]* Z% K9 G# J3 [+ N
知道是怎么回事吗?1 k8 H' p, N: T+ {: Z8 ?0 ]3 n

% A% l3 {% N" y0 b9 W
使用道具 举报 回复
发表于 2018-10-23 00:12:28 | 显示全部楼层
问题找到了吗?4 \1 Q2 V6 M: e* L! }4 l5 w
我的串口5也是这个问题
使用道具 举报 回复
发表于 2018-10-23 08:14:57 | 显示全部楼层
1. 可以加入cmbacktrace包查一下6 O, l/ n. _4 H
2. 如果可以接调试器的话可以用调试器单步调试缩小范围( @3 Y: R, f- Y: p0 j2 v
3. 加大线程buffer和uart5接收buffer试试% V5 e2 r: N5 I
4. 最好用github上最新的代码,说不定你的问题已经解决了
使用道具 举报 回复
发表于 2018-12-22 16:22:27 | 显示全部楼层
我用uart5作为shell 只能发送不能接收、
使用道具 举报 回复
发表于 2019-7-17 23:04:24 | 显示全部楼层
tcsun 发表于 2018-10-22 18:53
: g( M3 {( a/ I- M, t) k" t问一下,你的改好没有?我改的可以发送,但一接收就死机:" N- d7 `& Z6 h7 H" S% ?! a
msh >+ ^8 h9 s9 |7 i2 `  j( Q
msh >psr: 0x81000045
& r; q, L9 M2 _. F
startup_stm32f103xb.s这个文件要选对,根据自己的芯片修改
使用道具 举报 回复
发表于 2019-7-17 23:05:08 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:22( \4 p7 E8 Q5 H1 H( q9 h
我用uart5作为shell 只能发送不能接收、
; r3 a: o: y) E# {. O6 S: ^
startup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
使用道具 举报 回复
发表于 2019-7-20 16:27:48 | 显示全部楼层
jacycle 发表于 2019-7-17 23:05
7 [3 p9 t+ R, |* w1 [* \, }startup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
0 o" T, Z/ I! J
谢谢!
使用道具 举报 回复
发表于 2019-7-20 16:44:15 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:228 f7 `# _8 S; T& d( ]+ ]7 s
我用uart5作为shell 只能发送不能接收、
  ^0 n  y% Q7 H! U# M" x/ \6 }
因为uart5只能实现半双工,shell使用的全双工,如果要用uart5实现shell,那么你需要修改代码来控制收发引脚。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by RT-Thread

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