EDA365电子论坛网
标题:
串口卡在最后一条语句的while循环里有人碰到过这种情况吗
[打印本页]
作者:
oewqe
时间:
2022-9-30 15:22
标题:
串口卡在最后一条语句的while循环里有人碰到过这种情况吗
串口卡在最后一条语句的while循环里,有人碰到过这种情况吗?谢谢。
) e+ `0 n/ N: p/ ]7 o, ~
难道和rtt的串口框架冲突了?
( I3 t8 V* ]* w# U
0 M6 b) ^3 ^: m+ N4 k: R! O: v
void LCD_INT_N(uint16_t addr,uint16_t n)
+ r5 b+ P! M3 T! ?4 k
{
# I, e- t- _8 k! W1 H. }9 c
uint16_t t,crc;
" i# k+ [% c- v# }, V
LCD_buff[0]=0x82;
. _9 R7 p; S7 _7 e
LCD_buff[1]=addr/256;
4 }" U# t4 M( P8 Z3 b' W
LCD_buff[2]=addr%256;
: S: Z3 S( ?8 _- e8 k
for(t=0;t<n;t++)
8 @7 w, o" `* [: J8 r3 T0 d2 G
{
- F1 B, o: B2 _# j' n2 M
LCD_buff[3+t*2+0]=LCD_DAT.uc[t*2+1];;
, _8 O( ^" b7 M, b5 g5 f
LCD_buff[3+t*2+1]=LCD_DAT.uc[t*2+0];;
4 K+ @4 K2 M% M" _
}
1 u: h* o- O& E) J& d
crc=LCD_CRC16(LCD_buff,n*2+3);
: p7 u! y2 H* d4 [
LCD_buff[n*2+3]=(uint8_t)(crc/256);
& x% C2 V9 B* Z+ g
LCD_buff[n*2+4]=(uint8_t)(crc%256);
7 K. r0 C1 V' Y1 k
USART1->DR=0x5a;while((USART1->SR&0X40)==0);
1 U/ G$ P" [8 H' K |6 q
USART1->DR=0xa5;while((USART1->SR&0X40)==0);
3 T3 ]- l, v* ?
USART1->DR=5+n*2;while((USART1->SR&0X40)==0);
2 f; u% t9 R; O9 \- Q
for(t=0;t<(n*2+5);t++)
0 y4 c3 G3 W( X: O
{
4 N5 C; ^8 V; \6 H( f+ v
USART1->DR=LCD_buff[t];
% }* m! |( ^) a( X6 U
while((USART1->SR&0X40)==0);
; b9 `0 W; Z* i3 i) }
}
% @4 G, z9 |/ ?: B; w1 u
}thread.org/ask/question/37c829e885374055.html
: Q5 ^3 o" D8 B
作者:
itch
时间:
2022-9-30 15:45
你发的命令有回车换行符吗
: J# t. R, S, Y" W4 f5 O& ]7 V) l3 N. |
作者:
lahhse
时间:
2022-9-30 16:18
我之前也一直判断txe,字符串结束的时候来一个tc,这个用的别人代码,这个问题出现概率不大。
9 c1 R( V& w/ R
我看到一种方法是,
0 e/ ~0 v0 R, W# s0 l
* t- W5 E5 t& |3 ?6 e: w2 W
while((USART1->SR&0X80)==0);//先txe
& y7 J ] Y+ K+ b: [
USART1->DR=LCD_buff[t];
. M+ P6 D! y$ `4 Y& w
while((USART1->SR&0X40)==0);//再tc
: X* g$ J |' Y. |
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2