|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
版本:RT-Thread nano 3.1.5 用CubeMX生成代码0 ^9 r$ J, J- @0 J
环境:Clion搭配gcc工具链(可视作CubeIDE)
, I" J- y- b4 b问题:rt_kprintf()貌似没有关联到串口 R" D7 w9 n0 H/ f' n1 f+ P
8 k& u: j+ B. B9 ]9 w' n* z3 k
下边是3.1.5版本board.c里自带的代码,文档中心里的代码应该也一样- R* J8 f: C6 e; a$ a6 g; K0 v
1 r7 A% K9 k" h1 A+ }# \- H0 {; E
static UART_HandleTypeDef UartHandle;
: ?% C/ n4 Y2 Hstatic int uart_init(void)7 N8 h$ t* `3 e6 w( r
{+ O- s" E6 V# i* m& K4 s
/* TODO: Please modify the UART port number according to your needs */
' o7 w& ?- n( Q' } sUartHandle.Instance = USART2;3 ` |. }: f: x3 M5 N8 B F- d
UartHandle.Init.BaudRate = 115200;1 b) J& n. x; L% R- `2 I
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
* B8 y" U3 o8 A6 c% i' RUartHandle.Init.StopBits = UART_STOPBITS_1;
# x& ~# d: S1 m- I; A6 P7 kUartHandle.Init.Parity = UART_PARITY_NONE; f# Y8 G0 u7 i+ _/ U5 P
UartHandle.Init.Mode = UART_MODE_TX_RX;9 g* T1 c: [+ {
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
7 r& q$ k( `: B: P) I+ t+ nUartHandle.Init.OverSampling = UART_OVERSAMPLING_16;' \- _; G" m7 J# M7 q
if (HAL_UART_Init(&UartHandle) != HAL_OK)
) V9 c9 R$ L6 i) \( p( v% P, \{% R6 P" L7 i* f- h
while (1);
: m5 W+ b7 c& O+ S- o1 {}9 B: M( G6 z5 V: S3 ` G
return 0;4 D: j2 w! L6 ~8 k
}2 o( U! z8 `8 N# v' g. n4 o
INIT_BOARD_EXPORT(uart_init);
+ y J! C6 x. W" L, [+ t9 S4 J# Avoid rt_hw_console_output(const char str)8 \9 F I9 U) l
{; t1 ~! V5 G+ D& S
rt_size_t i = 0, size = 0;
8 c, m) U4 Y* u) echar a = '\r';
4 o: q! X8 ]2 N% X__HAL_UNLOCK(&UartHandle);- J; [: l) ?8 L& m
size = rt_strlen(str);/ c. B, ^/ X. i! ]0 F- n1 W, N
for (i = 0; i < size; i++)0 q! f: p5 g- d( [3 B) b
{
2 D! y8 z! H: k6 k8 _" }if ((str + i) == '\n')
6 }. L& t" \: g: \{
. \1 \8 S; W2 k2 G' a5 |HAL_UART_Transmit(&UartHandle, (uint8_t *)&a, 1, 1);
! ^: b/ c% q0 ]5 Y! W}8 F: V7 D" t; D4 H. k+ p
HAL_UART_Transmit(&UartHandle, (uint8_t *)(str + i), 1, 1);
" P ~2 }, Y: M( u4 @( D; a; w: R}
/ j9 H$ W. y* i2 {% h}
. _4 h% H+ V2 C E: U% V
4 L$ R7 ^& U6 g9 J* x6 ^9 H直接kprintf之后串口完全没有反应$ o4 \ p4 D% q
- A; f& i) F& `4 V
已经排除了硬件故障的可能,直接调用hal库的串口可以正常使用
4 Z2 M" O' \( F进debug调试后发现kprintf时候完全在上面
/ O0 u$ f" T: r7 m }' f
( i1 t7 W. W+ ^rt_hw_console_output()里走了一遭,但串口一点反应都没给,推测问题是根本没关联到串口上,但怎么解决一直没找到1 \" f& q, ?0 ` T
|
|