stm32F103 的UART5怎么用?

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

大家好,因为板子要用到比较多的串口,所以需要将uart5也用起来。% K7 H: r; N& ~  l% S
看了代码,发现uart1-4都是用到了DMA,uart5是不支持DMA的,
  v( X8 d, C* i那uart5口怎么用?是否可以提供一下代码,谢谢& [6 B% ?1 ?" b6 M7 [
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 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",
    $ {# a( `2 F: I5 N6 a$ B# G$ c
  2.                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX |
    3 G7 O" P4 V) s6 R# |6 x* ]2 M
  3.                           RT_DEVICE_FLAG_INT_TX |   RT_DEVICE_FLAG_DMA_RX,; G+ L% n* h" B; o& f5 K2 z3 R
  4.                           uart);
    6 E/ g3 m  i; f- i- @7 b( j
复制代码
! B0 F6 Y. z1 L+ N! r
注册的时候把 RT_DEVICE_FLAG_DMA_RX 去掉,打开的时候不要加  RT_DEVICE_FLAG_DMA_RX,其他抄一下
使用道具 举报 回复
发表于 2018-5-3 13:47:29 | 显示全部楼层
感谢
6 L0 ]$ W; T! J, g9 L+ \& Q
使用道具 举报 回复
发表于 2018-10-22 18:53:59 | 显示全部楼层
问一下,你的改好没有?我改的可以发送,但一接收就死机:
! z8 c0 C) U4 c9 w* d3 ?msh >
( b# o7 L: u& {2 Fmsh >psr: 0x810000452 A, G) I7 N; |  s& ~7 i
r00: 0x20000708
6 L" ~) T0 M4 X9 }" \r01: 0x200002f0
' A$ w( {' l. j# F9 s+ ?7 r3 B$ @' i1 Nr02: 0x20001758
: K% o* i  V' @6 Z: `/ x& Qr03: 0xffffffff/ E: u4 E: Q1 `8 V- M, }
r04: 0x00000001
' i& T7 m# j4 @* G6 S0 s. Yr05: 0xdeadbeef; L: J0 `( V# b
r06: 0xdeadbeef7 N3 L" K4 |9 G4 f& P, c
r07: 0xdeadbeef/ Y/ A6 [1 V  \- G7 g$ t; O, ?8 m
r08: 0xdeadbeef
( k) e& _5 G0 @: I6 Sr09: 0xdeadbeef
1 e6 p6 L* ]* r$ zr10: 0xdeadbeef. U% F" ]  D* N$ l5 `
r11: 0xdeadbeef" v4 P$ c. a, P8 Z$ `/ p
r12: 0x00000000- K  G1 M" g3 Z9 G
lr: 0xfffffffd  h) ?& Z: r/ @
pc: 0xbf180f00
4 r2 ?2 k4 H; I0 p/ `hard fault on handler8 J- e) ^; l& V' R5 S* m* ?+ o

. ?( [% l) n" r* E! m  G( nmem manage fault:
9 b% V4 D6 f7 `7 BSCB_CFSR_MFSR:0x01 IACCVIOL # ^6 t9 d2 }$ I% u( c0 t4 O& z

( O2 A) Q( u* B# \7 E知道是怎么回事吗?( h. W' v6 [  K# _

) N9 q) o- H+ ]2 \, i8 x
使用道具 举报 回复
发表于 2018-10-23 00:12:28 | 显示全部楼层
问题找到了吗?0 r/ @; r3 ~- u' Y! c$ g
我的串口5也是这个问题
使用道具 举报 回复
发表于 2018-10-23 08:14:57 | 显示全部楼层
1. 可以加入cmbacktrace包查一下
4 c( h* S+ X( T8 y- X2. 如果可以接调试器的话可以用调试器单步调试缩小范围' G6 L8 S. E9 s# ?
3. 加大线程buffer和uart5接收buffer试试
  C4 U; S. L1 G& B3 x4. 最好用github上最新的代码,说不定你的问题已经解决了
使用道具 举报 回复
发表于 2018-12-22 16:22:27 | 显示全部楼层
我用uart5作为shell 只能发送不能接收、
使用道具 举报 回复
发表于 2019-7-17 23:04:24 | 显示全部楼层
tcsun 发表于 2018-10-22 18:532 M' @: D% @' c$ \% Y. _/ i
问一下,你的改好没有?我改的可以发送,但一接收就死机:
+ p  t" n0 z6 J! Ymsh >
( S  t3 ^1 o2 Y2 A- w  @* D; @msh >psr: 0x81000045

) c5 _3 t6 }% c9 w$ B" a8 hstartup_stm32f103xb.s这个文件要选对,根据自己的芯片修改
使用道具 举报 回复
发表于 2019-7-17 23:05:08 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:22
* U8 `  ^1 ~+ e( W6 ^2 y! v我用uart5作为shell 只能发送不能接收、

+ ^" c! ^, h4 _7 n3 c% rstartup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
使用道具 举报 回复
发表于 2019-7-20 16:27:48 | 显示全部楼层
jacycle 发表于 2019-7-17 23:05* Z" v) S% O8 S1 L6 j
startup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
+ ^: K6 t: Q% A
谢谢!
使用道具 举报 回复
发表于 2019-7-20 16:44:15 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:223 l7 B1 p6 q' f4 K9 S6 P
我用uart5作为shell 只能发送不能接收、
- f( ~5 w5 [* n; q- E) t* k
因为uart5只能实现半双工,shell使用的全双工,如果要用uart5实现shell,那么你需要修改代码来控制收发引脚。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by RT-Thread

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