制作BSP问题-USART1失败

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

挺郁闷 搞了好几次都是失败8 i: @4 K1 r5 K  ^# ?
不知道问题在哪里; b4 g) N2 t, U! p8 {
头大无比
. @0 |! h- q& Z
# H9 A1 J; n$ W% t# }2 c. {6 i严格按照git文档做的 怎么就是不行?
2 u; K- P1 @3 ?' q7 n+ B6 y" H4 t6 z; ~' F
GPIO一句话没写  成功了 mian里面直接写了我板子的PB8 PB9就可以控制了
$ I& H1 R- w, \2 f8 \0 R3 A但是输出函数会死!" J- |! ~1 F% S
入口:
$ x4 ~+ w6 z9 `/ T3 h" g6 P- l% t  ]int $Sub$$main(void)
* J! [2 Y4 I) G& D{
- m! @0 ~6 L3 K9 r8 r" W" ^    rt_hw_interrupt_disable();
# j" {+ S- K' C8 h& Y, A7 ]8 i! E( q    rtthread_startup();
6 `/ W- E9 D. v& t    return 0;) e7 s- G) {+ w3 c9 G4 s2 u
}$ v" f- i& ?" x0 u
进入:) h5 o, q6 i6 d1 @- {0 H: l
    rtthread_startup();
' R7 f( P- d9 b        7 C5 |- n  f- S7 l2 j
        打印:rt_show_version();
) _- |6 x; R5 a+ D. c, \; i                rt_kprintf("\n \\ | /\n");
- e% F5 s4 `4 V8 @3 ^" J就会死机!
0 K1 y. w- a& K) W& |static int stm32_putc(struct rt_serial_device *serial, char c)8 m. D/ g% f: Q3 v
{% U, w6 C9 m2 w
    uart->handle.Instance->DR = c;
. w( s; E6 R" M/ e1 \/ g    while (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_TC) == RESET);//死机!!----------必须del这句话
9 U. }0 S) o. _}6 T% T. _- o" Z% M/ K, K3 S
$ @! B% \5 P( w. r

0 z, Z# u' o9 N. f, L这是啥道理 : O5 ~1 e( \* Z; _
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-6-25 18:00:17 | 显示全部楼层
本帖最后由 whj467467222 于 2019-6-25 18:02 编辑 9 Q" F/ V2 `, ]4 v  _- T
# e! v9 q0 l  H0 z" L' l
我严格按照官方教程制作了 F107 G070 H743都可以直接使用。, K# z( F) |4 C6 W7 ]; T
你可以贴出你用的什么芯片等信息,这样方便其他人帮到你。
使用道具 举报 回复
发表于 2019-6-25 20:05:52 | 显示全部楼层
断点看下你的串口初始化函数有没有被调用,感觉是你串口没有在使用之前初始化
使用道具 举报 回复
发表于 2019-6-26 10:23:21 | 显示全部楼层
zhangjun 发表于 2019-6-25 20:05! w. ?: J% E) P. m( T
断点看下你的串口初始化函数有没有被调用,感觉是你串口没有在使用之前初始化 ...
3 [) n4 h% M3 L5 K3 M" f: y
int $Sub$$main(void). _8 l- G5 L: {# P3 o: W
rtthread_startup();
" E' H& v+ s; {! z- _! W: |rt_hw_board_init()0 S0 x6 y5 O/ G  l4 Y
        rt_hw_pin_init();
2 X3 Y$ m' Z5 ~4 X! E1 ?4 D9 J0 {$ {. ^        rt_hw_usart_init();/ _# g" F/ _$ Q' K6 ^# m" d
        rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
$ X5 x& U0 l6 D' }1 a        rt_components_board_init();
& f7 x# M: \8 L. A0 Prt_show_version();死机 主要是它有打印7 d* L- \2 }/ A9 d2 I/ G2 g& l
1 H/ H/ F8 J2 M% @7 ~. c3 h" p
stm32_putc% U* O3 Y8 }5 [# p: \0 t
死在输出的那个死循环( i2 Z5 U4 e6 E) ?
现在
# g1 f8 |: C/ f" H0 N5 ]* i1del那个死循环 程序LED正常 串口没有输出4 M' [7 ]% g1 w" N* y2 {
2可以不del,在int rt_hw_usart_init(void)中增加一句话
, ]( x0 I( Q% x# U__HAL_RCC_USART1_CLK_ENABLE();不在死机了 但是也没有输出* B9 G& k& T3 n8 O9 ~$ O5 I- t

0 T4 S3 s" u9 H帮看下
使用道具 举报 回复
发表于 2019-6-26 12:46:24 | 显示全部楼层
串口硬件有没有初始化4 y: ^; |/ G& n( @  C& X' P. H! ^
使用道具 举报 回复
发表于 2019-6-26 12:48:30 | 显示全部楼层
贴工程吧
使用道具 举报 回复
发表于 2019-6-26 16:08:41 | 显示全部楼层
tyustli 发表于 2019-6-26 12:46" n6 l8 O& g, c/ G
串口硬件有没有初始化

" s$ B; ]# n- i- d7 Q能不能贴个函数 我自己搜一搜  我不知道那个函数来初始化串口
使用道具 举报 回复
发表于 2019-6-26 16:11:07 | 显示全部楼层
代码放在:
! g! q3 I$ u/ ~0 Ihttps://gitee.com/GKoSon/RTT_BSP.git
( _4 F2 o: Y; n1 B0 e# K+ }提交也有txt说明 还是没有解决问题
使用道具 举报 回复
发表于 2019-6-26 17:27:54 | 显示全部楼层
本帖最后由 whj467467222 于 2019-6-26 17:46 编辑 : O: f( u0 J' Z* G* b* ~  x
GKoSon 发表于 2019-6-26 16:11% j2 z( F* p5 s: {2 O
代码放在:
# s  B. Z! L: C. K5 v  ~https://gitee.com/GKoSon/RTT_BSP.git5 x/ v6 F; X" [( v
提交也有txt说明 还是没有解决问题 ...
5 t6 C" D# x" Q, M
楼主你的问题,我可能已经发现问题所在了。 微信图片_20190626174305.png ; M# R' Z$ T' Q+ {$ y
你把这个勾选之后就会自动生成usart.c,这个里面就包含了HAL_UART_MspInit  这个用来初始化UART的函数,RTT的工程中默认的初始化函数是在stm32_f4_msp.c当中,2 O+ d9 M5 o; q
你的BSP出问题就是找不到UART的初始化,你把这个取消勾选之后再重新生成工程就可以了。# q8 [7 @6 J* C+ b0 c
, H" S4 G" H2 b  I6 w) P
使用道具 举报 回复
发表于 2019-6-26 17:35:43 | 显示全部楼层
GKoSon 发表于 2019-6-26 16:08& k5 v4 i5 P6 q7 j- M& C
能不能贴个函数 我自己搜一搜  我不知道那个函数来初始化串口
  1. void HAL_UART_MspInit(UART_HandleTypeDef* huart);
复制代码

' Z8 H  c) s( A* ]' d( j工程里面全局搜索一下看看有没有这个函数,函数名可能不是这个,就是 UART 初始化相关的函数
使用道具 举报 回复
发表于 2019-6-27 15:31:40 | 显示全部楼层
whj467467222 发表于 2019-6-26 17:271 C0 R1 e% G' z. T  y/ k
楼主你的问题,我可能已经发现问题所在了。
4 B8 i8 ^$ m+ w$ V你把这个勾选之后就会自动生成usart.c,这个里面就包含了HAL_U ...
( q, B- A5 u5 ^% Z) _) w! D. z
非常感谢 正是如此 这样的问题都被你发现了 真实机缘巧合啊 谢谢
使用道具 举报 回复
发表于 2019-6-27 18:37:27 | 显示全部楼层
GKoSon 发表于 2019-6-27 15:31: Y0 _, k  s+ P$ Z
非常感谢 正是如此 这样的问题都被你发现了 真实机缘巧合啊 谢谢
8 B% Q) q& {8 N1 ?- u0 y6 O
不是机缘巧合,我专门去查的问题。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

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