stm32F103 的UART5怎么用?

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

大家好,因为板子要用到比较多的串口,所以需要将uart5也用起来。
, w% `' ?! O5 {" Y7 o看了代码,发现uart1-4都是用到了DMA,uart5是不支持DMA的,
6 g! V, H5 q" k: M6 {: i$ p那uart5口怎么用?是否可以提供一下代码,谢谢
1 n6 g% W/ ]$ u" n& t. h
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 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",
    7 B( I/ C7 @* X3 K' k
  2.                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX |7 r5 }3 |  g* N; i
  3.                           RT_DEVICE_FLAG_INT_TX |   RT_DEVICE_FLAG_DMA_RX,
    ) y- X6 L, B% `9 f& c( p6 A
  4.                           uart);( l1 V1 P6 z( Y# s/ Y$ H; K) J
复制代码

4 f" \2 x; d$ j, T4 F注册的时候把 RT_DEVICE_FLAG_DMA_RX 去掉,打开的时候不要加  RT_DEVICE_FLAG_DMA_RX,其他抄一下
使用道具 举报 回复
发表于 2018-5-3 13:47:29 | 显示全部楼层
感谢
3 p: I( [" _4 r
使用道具 举报 回复
发表于 2018-10-22 18:53:59 | 显示全部楼层
问一下,你的改好没有?我改的可以发送,但一接收就死机:
; b- }+ V6 R5 N/ ]. R) qmsh >" N1 r' N8 x/ Z" O: L* X
msh >psr: 0x81000045; ^2 }& j# ~* q. B& _3 h. f
r00: 0x200007082 o% s$ b- Y: V, E. j, G/ Y
r01: 0x200002f0, R! z. b+ Y$ G. i* p5 h
r02: 0x20001758) y  e2 g4 ]5 S; o
r03: 0xffffffff1 |( @% Z8 i; |0 J$ |" ?# n
r04: 0x00000001
* O0 g' I& y' P2 q0 `: }r05: 0xdeadbeef
- ^5 r$ g+ ]: w2 w3 Ar06: 0xdeadbeef
0 t) O0 K0 k7 \7 [$ Q; s: q3 D6 Dr07: 0xdeadbeef; F8 e2 a* Z( _
r08: 0xdeadbeef
; b; b3 a0 j9 L8 X: R1 pr09: 0xdeadbeef& ^. [( H2 Z2 e0 s9 R0 k
r10: 0xdeadbeef
+ F4 ?* u& _  a7 U+ x0 Y: @, yr11: 0xdeadbeef& G6 @1 H$ ^" ^2 U: m+ j9 j8 Q
r12: 0x00000000
1 J# z! [1 z. l, [$ b6 R lr: 0xfffffffd
$ l- c& T1 X) a" _2 c  q" c9 C pc: 0xbf180f00
, F) f$ @8 k" P8 [+ f' `hard fault on handler9 }  g# g$ ~( c* c2 l
1 t; y1 p) t: {1 ]# h- c
mem manage fault:3 o: Y' P6 u9 ~! n0 {0 V9 F! @
SCB_CFSR_MFSR:0x01 IACCVIOL
, Y  j1 h* ^( G+ _" v: h5 t! D$ I3 u: I4 q
知道是怎么回事吗?" B# S) v; K7 R( V9 G
" ]3 r- ]8 }, \1 X
使用道具 举报 回复
发表于 2018-10-23 00:12:28 | 显示全部楼层
问题找到了吗?  q+ F9 F0 S% F( }) z$ A$ j7 }
我的串口5也是这个问题
使用道具 举报 回复
发表于 2018-10-23 08:14:57 | 显示全部楼层
1. 可以加入cmbacktrace包查一下
" q/ O* }% w3 p+ X) T2. 如果可以接调试器的话可以用调试器单步调试缩小范围
6 F: O8 b, X- o: B7 s  U3. 加大线程buffer和uart5接收buffer试试
, p% B! G3 M4 z5 m  n4. 最好用github上最新的代码,说不定你的问题已经解决了
使用道具 举报 回复
发表于 2018-12-22 16:22:27 | 显示全部楼层
我用uart5作为shell 只能发送不能接收、
使用道具 举报 回复
发表于 2019-7-17 23:04:24 | 显示全部楼层
tcsun 发表于 2018-10-22 18:53
" q# x3 |  B/ A$ @) Q问一下,你的改好没有?我改的可以发送,但一接收就死机:( D6 k7 I' ^+ Z( v' d) I& R
msh >
  s& R/ E) }  M! K2 ~/ W6 R% vmsh >psr: 0x81000045

. `9 c' z1 J2 i8 cstartup_stm32f103xb.s这个文件要选对,根据自己的芯片修改
使用道具 举报 回复
发表于 2019-7-17 23:05:08 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:22' C% h6 r& H9 i2 N0 C& m' v0 i
我用uart5作为shell 只能发送不能接收、

( B6 B7 X& W. g2 Astartup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
使用道具 举报 回复
发表于 2019-7-20 16:27:48 | 显示全部楼层
jacycle 发表于 2019-7-17 23:05
9 k' o. [4 m- ^8 L' y/ D  Y" j4 cstartup_stm32f103xb.s这个文件需要修改成自己的型号,如startup_stm32f103xg.s
* v* T7 l& h0 \4 @& M- U" L9 W  k
谢谢!
使用道具 举报 回复
发表于 2019-7-20 16:44:15 | 显示全部楼层
xunnrtthread 发表于 2018-12-22 16:22( f, K( T1 c! Q
我用uart5作为shell 只能发送不能接收、

% o! B( q* M; M6 O5 ]# ?% k" h因为uart5只能实现半双工,shell使用的全双工,如果要用uart5实现shell,那么你需要修改代码来控制收发引脚。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by RT-Thread

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