制作BSP问题-USART1失败

发表在 内核学习营2019-6-25 17:16 [复制链接] 11 386

挺郁闷 搞了好几次都是失败
6 g# k; e! ?+ W( n: C0 \6 f$ N. O不知道问题在哪里5 R' D+ ]; N7 o" Q6 [. l; c
头大无比
1 b& L2 l" z) l* a' ]6 d) B& j* ]( n4 L) Q: g* R
严格按照git文档做的 怎么就是不行?8 S; T4 k! f. ]+ y

0 o6 t$ w, h+ oGPIO一句话没写  成功了 mian里面直接写了我板子的PB8 PB9就可以控制了
6 J1 k2 X' v/ k3 j6 w( {) U& n$ E但是输出函数会死!2 P  B! U, C0 K1 N4 e
入口:
  W) e; V. C6 q* f9 \int $Sub$$main(void)2 p) }% r6 J8 `- _6 r: D
{5 S2 Y/ g* T4 o( ]7 q1 [% H& ~
    rt_hw_interrupt_disable();
, D: [: M6 ~! Q: F    rtthread_startup();
) o  A; ~/ P: A! ^- T# J# \9 N    return 0;
; A4 N1 c- _& N7 q+ T}0 @% z0 J7 `3 y6 b( q2 B" C2 K. v' B
进入:$ }$ _0 v3 K+ m5 Q  e7 {( P: }  _) }
    rtthread_startup();
% D0 m# a& f% o3 q  c       
# D* C! h9 I% h! {        打印:rt_show_version();7 y; k9 `% X+ S0 Q# }5 h* Q% s1 W
                rt_kprintf("\n \\ | /\n");2 ^- \5 d5 ~5 w. J8 N$ R
就会死机!
, i7 W* p- @  A0 O& J8 F& R1 qstatic int stm32_putc(struct rt_serial_device *serial, char c)
. L2 Q  f4 F2 q& ?{
: a9 a# T4 W2 d$ `( c( s! `& y    uart->handle.Instance->DR = c;- W9 E7 [0 _9 w% O( v( L# ~
    while (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_TC) == RESET);//死机!!----------必须del这句话: J* `2 ~) u! ~& G
}
! g' |$ Z1 M6 `0 r% r( \
+ }& y0 ?1 }" ~5 g
5 c) ^6 W- B6 e: J: ?这是啥道理
5 ^5 ^; ?' b# ]0 Z, K
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-6-25 18:00:17 | 显示全部楼层
本帖最后由 whj467467222 于 2019-6-25 18:02 编辑 * @  ?2 {2 g* h) u, x
9 r5 S. ^# L4 V, @9 ^0 U2 n" r
我严格按照官方教程制作了 F107 G070 H743都可以直接使用。
- ]9 c& y: D/ j+ S你可以贴出你用的什么芯片等信息,这样方便其他人帮到你。
使用道具 举报 回复
发表于 2019-6-25 20:05:52 | 显示全部楼层
断点看下你的串口初始化函数有没有被调用,感觉是你串口没有在使用之前初始化
使用道具 举报 回复
发表于 2019-6-26 10:23:21 | 显示全部楼层
zhangjun 发表于 2019-6-25 20:05
9 h) t$ ^' j: F9 H4 v断点看下你的串口初始化函数有没有被调用,感觉是你串口没有在使用之前初始化 ...
% k3 o" j- M: O' D6 r  M
int $Sub$$main(void)% ]$ P- }3 K. X5 T2 q6 K
rtthread_startup();
: k1 s- p6 I1 T/ s$ R) art_hw_board_init()
1 }4 s; Q- W4 o        rt_hw_pin_init();
% v4 i# O1 E) g$ z  r1 ^  r        rt_hw_usart_init();
1 d! G& w! d, o2 i6 q- }        rt_console_set_device(RT_CONSOLE_DEVICE_NAME);- O- Y! t" U! d- \; x/ B
        rt_components_board_init();
# K) }+ |/ d7 M7 M+ V2 G& ^rt_show_version();死机 主要是它有打印
) j4 O1 J2 Z' w, d. v0 T5 _- b1 {9 B+ N# S
stm32_putc
# K/ f9 s' I' Q$ G' Q4 A死在输出的那个死循环' |3 I$ N9 J4 G9 U
现在
- q" U7 z: T! f1del那个死循环 程序LED正常 串口没有输出2 d  T  z3 l1 E! }) @' j% {
2可以不del,在int rt_hw_usart_init(void)中增加一句话% d/ j9 u# s6 c' K
__HAL_RCC_USART1_CLK_ENABLE();不在死机了 但是也没有输出) ?' D' k+ _5 I
" X  H+ K' r2 W3 G( s; K
帮看下
使用道具 举报 回复
发表于 2019-6-26 12:46:24 | 显示全部楼层
串口硬件有没有初始化
7 V+ k& b; D* k& t
使用道具 举报 回复
发表于 2019-6-26 12:48:30 | 显示全部楼层
贴工程吧
使用道具 举报 回复
发表于 2019-6-26 16:08:41 | 显示全部楼层
tyustli 发表于 2019-6-26 12:46
  `# \9 w( }# Z' U& G% Y串口硬件有没有初始化

' s6 y6 I2 I. x- F3 p5 r能不能贴个函数 我自己搜一搜  我不知道那个函数来初始化串口
使用道具 举报 回复
发表于 2019-6-26 16:11:07 | 显示全部楼层
代码放在:
6 D6 o( Y3 g1 c- Y5 [# qhttps://gitee.com/GKoSon/RTT_BSP.git
: z* J1 Z- V( ]# N+ l  ^/ ~提交也有txt说明 还是没有解决问题
使用道具 举报 回复
发表于 2019-6-26 17:27:54 | 显示全部楼层
本帖最后由 whj467467222 于 2019-6-26 17:46 编辑 & I8 ^' i1 \9 D; Q+ a
GKoSon 发表于 2019-6-26 16:112 ~9 y' ~" [8 D, @$ z
代码放在:
& q# T# p3 Y1 C6 H7 X8 R+ qhttps://gitee.com/GKoSon/RTT_BSP.git0 s, {) G! A4 k1 [
提交也有txt说明 还是没有解决问题 ...
" }4 b5 w4 d+ g% @$ w2 K4 q. }% q
楼主你的问题,我可能已经发现问题所在了。 微信图片_20190626174305.png 2 }! K4 Q0 T7 c) d
你把这个勾选之后就会自动生成usart.c,这个里面就包含了HAL_UART_MspInit  这个用来初始化UART的函数,RTT的工程中默认的初始化函数是在stm32_f4_msp.c当中,
$ ~, e: ^1 ?+ `3 B你的BSP出问题就是找不到UART的初始化,你把这个取消勾选之后再重新生成工程就可以了。
4 O; l. ?- H" ]7 p, M+ K
0 I! k5 T4 j2 H2 e
使用道具 举报 回复
发表于 2019-6-26 17:35:43 | 显示全部楼层
GKoSon 发表于 2019-6-26 16:08" }4 o/ H! {* d$ M
能不能贴个函数 我自己搜一搜  我不知道那个函数来初始化串口
  1. void HAL_UART_MspInit(UART_HandleTypeDef* huart);
复制代码
( p$ C. A* Z7 F# v- W
工程里面全局搜索一下看看有没有这个函数,函数名可能不是这个,就是 UART 初始化相关的函数
使用道具 举报 回复
发表于 2019-6-27 15:31:40 | 显示全部楼层
whj467467222 发表于 2019-6-26 17:27
5 Q' F5 k* ?0 V: p楼主你的问题,我可能已经发现问题所在了。
9 C- G( ?& M8 o( S3 i你把这个勾选之后就会自动生成usart.c,这个里面就包含了HAL_U ...

; I2 |+ u4 c% ~+ V3 n非常感谢 正是如此 这样的问题都被你发现了 真实机缘巧合啊 谢谢
使用道具 举报 回复
发表于 2019-6-27 18:37:27 | 显示全部楼层
GKoSon 发表于 2019-6-27 15:31# A1 Q, l, _, G. t( ^2 o- g
非常感谢 正是如此 这样的问题都被你发现了 真实机缘巧合啊 谢谢

; e- }# Q( S) C$ ]. v! g% f不是机缘巧合,我专门去查的问题。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by RT-Thread

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