|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
版本:RT-Thread nano 3.1.5 用CubeMX生成代码
. y% y1 B3 A% R" z* E7 H5 u8 T环境:Clion搭配gcc工具链(可视作CubeIDE)
. a P) y" u8 J8 Y9 K; b3 I问题:rt_kprintf()貌似没有关联到串口8 V0 t0 _; _6 C. x# H; h3 H, n
0 W, C8 c( D' W: Z& V8 D下边是3.1.5版本board.c里自带的代码,文档中心里的代码应该也一样
1 i5 x2 c0 n( o- O0 `: V* k* l7 A) U+ U8 C$ [- F
static UART_HandleTypeDef UartHandle;
6 H1 B) I6 A5 S, V2 e- ^static int uart_init(void)' w* `+ {- F( Z/ C" L
{. U: E2 m, V7 z6 L% y6 o0 \ w% e% S
/* TODO: Please modify the UART port number according to your needs */
0 m, f8 ?/ [6 S+ LUartHandle.Instance = USART2;/ I0 j+ ]5 `- K
UartHandle.Init.BaudRate = 115200;: {- Q% E' j& _+ e% K/ H
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
3 o* ~2 i- }; k$ c6 ]2 c5 ]: D. M3 dUartHandle.Init.StopBits = UART_STOPBITS_1;) d/ N, ?7 T, \9 h9 K- x
UartHandle.Init.Parity = UART_PARITY_NONE;
) d7 L8 O- o/ u; F, B+ l2 dUartHandle.Init.Mode = UART_MODE_TX_RX;7 M- @1 Q1 C }8 Z' D
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;/ b+ p( r O4 y* r
UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;, Z: r' W; v, O/ r1 i
if (HAL_UART_Init(&UartHandle) != HAL_OK)
9 P9 q ?! s/ `+ m{
/ V$ d8 \' Q3 cwhile (1);
) |; R4 @& [; P}) i4 z9 t& T( c: A+ _
return 0;! O6 r, h4 P: k; ^
}+ E9 [9 v" r/ u1 v
INIT_BOARD_EXPORT(uart_init);+ M6 }6 ?0 U5 k# z, E; y2 O3 T
void rt_hw_console_output(const char str)( r3 `- f, p" {6 l3 |
{: V: d6 ~/ S2 M6 X- V; U X
rt_size_t i = 0, size = 0;* I% `9 I" L) N8 L: b: J9 w
char a = '\r';
' f! k% ?7 r- J2 {) N* h- i__HAL_UNLOCK(&UartHandle);" T, x4 s3 E( P9 x7 C
size = rt_strlen(str);
& V3 F; C9 w- |for (i = 0; i < size; i++); g, \7 t7 N& f
{$ g5 x( S' d7 a
if ((str + i) == '\n')
, T/ S( N* ?# ? J# h& N: v3 \- Q9 f{* H6 Y3 b/ W' a
HAL_UART_Transmit(&UartHandle, (uint8_t *)&a, 1, 1);
$ N# Q& Q" p& P/ g) I( g, ^; O; n}
0 x5 J) _8 s" o3 b$ L+ DHAL_UART_Transmit(&UartHandle, (uint8_t *)(str + i), 1, 1);
# V+ k3 F" X+ G}
' d7 d' e6 n" e}
6 D6 l( `( i9 S4 f4 s8 H, U$ V! V; y( U: z9 a9 p8 B0 d: ^) |
直接kprintf之后串口完全没有反应
% V' P) y, b2 C: T w# e! [& J/ d8 X- d2 I: Y b% M# S8 F
已经排除了硬件故障的可能,直接调用hal库的串口可以正常使用
+ y& q4 f- _+ l; O进debug调试后发现kprintf时候完全在上面0 |+ _# w; ~+ g* D* m$ }0 h! {
* _; a0 }3 t1 H1 s
rt_hw_console_output()里走了一遭,但串口一点反应都没给,推测问题是根本没关联到串口上,但怎么解决一直没找到' x5 Q( L: E4 A1 r+ I6 U
|
|