串口demo使用异常

Viewed 122

技术支持提问请严格按照以下格式提供对应信息,否则会影响回复时效,一定要描述清楚,以免一次回复无法解决问题

(提问前请先自查自己是否很仔细看过教程了,教程中的每句话都很重要,教程都是经过验证的,不会有问题的)

一、描述你遇到的问题

使用例程的串口demo,polling收发,将数据buffer长度改小到30。接收到的数据不是一帧,而是分成了3+27两段,程序内buffer内容固定,但是能看到调试助手收到的数据并不是每次都相同。测试接收也是收不到,监控日志并没有上报接收成功。
还有一点,发出来的日志内容非常多,这个demo发这么多东西吗?我只能看到程序在发送或者接收的时候有两句话,可是监控日志一大堆。

二、你具体做的所有步骤结果截图


三、当前开发板状态全景照片

请插入图片

四、开发板串口所有日志

2024-08-28 14:33:02:126 -> Name TaskEntryAddr TID Priority Status StackSize WaterLine StackPoint TopOfStack SemID EventMask CPUP CPUP 10.0s CPUP 1.0s


Swt_Task 0x00a0cb00 0x1 0 Suspend 0x800 0x478 0x00a2ec70 0x00a2e5e0 0xffffffff 0x0 0.0 0.0 0.0
IdleCore000 0x00a0c212 0x2 31 Ready 0x400 0x284 0x00a2efa0 0x00a2ee00 0xffffffff 0x0 6.0 0.0 0.0
dfx_msg 0x002505be 0x3 5 Pend 0x800 0x1b4 0x00a31b70 0x00a31520 0xffffffff 0x0 0.0 0.0 0.0
app 0x00253ca2 0x4 27 Ready 0x800 0x194 0x00a325b0 0x00a31f40 0xffffffff 0x0 0.0 0.0 0.0
log 0x0035d39c 0x5 25 Pend 0x800 0x194 0x00a32dd0 0x00a32760 0x1 0x0 0.0 0.0 0.0
bt 0x0014d32a 0x6 1 Pend 0xe00 0x3b4 0x00a33bd0 0x00a32f80 0xffffffff 0x0 0.4 0.0 0.0
bt_sdk 0x003150ea 0x7 12 Pend 0x800 0x1b4 0x00a343f0 0x00a33da0 0xffffffff 0x0 0.0 0.0 0.0
bth_sdk 0x00329686 0x8 13 Pend 0x800 0x164 0x00a34c50 0x00a345b0 0x4 0x0 0.0 0.0 0.0
recvBthDataTask 0x0032d20c 0x9 10 Pend 0x800 0x194 0x00a35440 0x00a34dd0 0xffffffff 0x0 0.0 0.0 0.0
bt_service 0x00313ce4 0xa 12 Pend 0x1000 0x1c4 0x00a36430 0x00a355f0 0xffffffff 0x0 0.0 0.0 0.0
at 0x002476a2 0xb 1 Pend 0x2000 0x194 0x00a38480 0x00a36610 0xffffffff 0x0 0.0 0.0 0.0
radar_driver 0x0034d65c 0xd 23 Pend 0x800 0x194 0x00a3acb0 0x00a3a640 0xffffffff 0x3 0.0 0.0 0.0
radar_feature 0x0034dd9e 0xe 24 Pend 0x2600 0x478 0x00a3d2d0 0x00a3ae60 0xffffffff 0xf 0.0 0.0 0.0
UartTask 0x0034ac92 0xf 17 Running 0x1000 0x448 0x00a3e1f0 0x00a3d480 0xffffffff 0x0 93.2 100.0 100.0
schedule_loop 0x0031431c 0x10 11 Pend 0xa00 0x164 0x00a3fa90 0x00a3f1f0 0x3 0x0 0.0 0.0 0.0
wifi_frw_msg 0x0026754e 0x11 4 Pend 0x1400 0x2c4 0x00a413b0 0x00a40120 0xffffffff 0x1 0.0 0.0 0.0
wifi_frw_txdata 0x0026754e 0x12 4 Pend 0x1000 0x174 0x00a42440 0x00a415b0 0xffffffff 0x1 0.0 0.0 0.0
wifi_frw 0x00128d80 0x13 5 Pend 0x1000 0x6c8 0x00a44a20 0x00a43b90 0xffffffff 0x1 0.1 0.0 0.0
tcpip_thread 0x0026c6a8 0x14 5 PendTime 0x1000 0x1c4 0x00a45bd0 0x00a44d90 0xffffffff 0x1 0.0 0.0 0.0
APP|exception:8000000c
2024-08-28 14:33:02:167 -> APP|Oops:NMI
task:UartTask
thrdPid:0xf
type:0xc
nestCnt:0
phase:Task
ccause:0x8
mcause:0x8000000c
mtval:0x0
gp:0xa11a64
mstatus:0x80007880
mepc:0x23de4a
ra:0x23de46
sp:0xa3e310
tp:0x0
t0:0xa3e3f4
t1:0xa0f0a4
t2:0xa140bc
s0:0xa2abbe
s1:0xa2aba0
a0:0x0
a1:0x9
a2:0xa3e42f
a3:0x0
a4:0xa11ebc
a5:0x1
a6:0xff
a7:0xa3e3e0
s2:0x1
s3:0xa2aba0
s4:0x0
s5:0x0
s6:0x9090909
s7:0x8080808
s8:0x7070707
s9:0x6060606
s10:0x5050505
s11:0x4040404
t3:0x1
t4:0x1
t5:0x1
t6:0x180000
APP|cxcptsc = 0x8
2024-08-28 14:33:02:170 -> APP|backtrace begin
2024-08-28 14:33:02:176 -> fp error, backtrace failed!
APP|backtrace end
2024-08-28 14:33:02:179 -> APP|stack txt info begin
2024-08-28 14:33:02:184 -> APP|traceback 1 -- sp addr= 0xa3e314 sp content= 0x23de4a
2024-08-28 14:33:02:190 -> APP|traceback 29 -- sp addr= 0xa3e384 sp content= 0xa0f0a4
2024-08-28 14:33:02:195 -> APP|traceback 31 -- sp addr= 0xa3e38c sp content= 0x23de46
2024-08-28 14:33:02:201 -> APP|traceback 55 -- sp addr= 0xa3e3ec sp content= 0xa0c1ba
2024-08-28 14:33:02:207 -> APP|traceback 59 -- sp addr= 0xa3e3fc sp content= 0xa0d39c
2024-08-28 14:33:02:212 -> APP|traceback 67 -- sp addr= 0xa3e41c sp content= 0x23de22
2024-08-28 14:33:02:218 -> APP|traceback 79 -- sp addr= 0xa3e44c sp content= 0x34ad1a
2024-08-28 14:33:02:223 -> APP|traceback 87 -- sp addr= 0xa3e46c sp content= 0xa0c256
2024-08-28 14:33:02:229 -> APP|traceback 91 -- sp addr= 0xa3e47c sp content= 0xa0e1ea
2024-08-28 14:33:02:231 -> APP|stack txt info end
2024-08-28 14:33:02:232 -> diag_unconnect
2024-08-28 14:33:02:235 -> diag_unconnect
2024-08-28 14:33:02:235 -> diag_unconnect
2024-08-28 14:33:02:237 -> diag_unconnect
2024-08-28 14:33:02:237 -> diag_unconnect
2024-08-28 14:33:02:240 -> diag_unconnect
2024-08-28 14:33:02:240 -> diag_unconnect
2024-08-28 14:33:02:242 -> diag_unconnect
2024-08-28 14:33:02:243 -> diag_unconnect
2024-08-28 14:33:02:246 -> diag_unconnect
2024-08-28 14:33:02:246 -> diag_unconnect
2024-08-28 14:33:02:248 -> diag_unconnect
2024-08-28 14:33:02:287 -> APP|Reboot core:2 cause 0x2008boot.
2024-08-28 14:33:02:334 -> Flash Init Fail! ret = 0x80001341
2024-08-28 14:33:02:336 -> verify_public_rootkey secure verify disable!
2024-08-28 14:33:02:339 -> verify_params_key_area secure verify disable!
2024-08-28 14:33:02:345 -> verify_params_area_info secure verify disable!
2024-08-28 14:33:02:348 -> verify_image_key_area secure verify disable!
2024-08-28 14:33:02:353 -> verify_image_code_info secure verify disable!
2024-08-28 14:33:02:414 -> SSB Uart Init Succ!
2024-08-28 14:33:02:417 -> SSB Flash Init Succ!
2024-08-28 14:33:02:420 -> verify_image_key_area secure verify disable!
2024-08-28 14:33:02:424 -> verify_image_code_info secure verify disable!
2024-08-28 14:33:02:443 -> Flashboot Uart Init Succ!
2024-08-28 14:33:02:446 -> Flashboot Malloc Init Succ!
2024-08-28 14:33:02:449 -> Flash Init Succ!
2024-08-28 14:33:02:449 -> No need to fix SR!
2024-08-28 14:33:02:452 -> flashboot version : 1.10.101
2024-08-28 14:33:02:454 -> [UPG] upgrade init OK!
2024-08-28 14:33:02:457 -> No need to upgrade...
2024-08-28 14:33:02:460 -> flash_encrypt disable.
2024-08-28 14:33:02:463 -> verify_image_key_area secure verify disable!
2024-08-28 14:33:02:466 -> verify_image_code_info secure verify disable!
2024-08-28 14:33:02:890 -> APP|Debug uart init succ.
2024-08-28 14:33:02:893 -> [UPG] upgrade init OK!
2024-08-28 14:33:02:898 -> APP|init_dev_addr, mac_addr:0xd6,0x 0,0x73,0xf9,0x**,0x**,
2024-08-28 14:33:02:901 -> xo_trim_temp_comp val:0 0
2024-08-28 14:33:02:904 -> APP|AT uart init succ.
2024-08-28 14:33:02:906 -> los_at_plt_cmd_register EXCUTE
2024-08-28 14:33:02:909 -> APP|WARNING: main_initialise::thread[11] func is null
2024-08-28 14:33:02:977 -> cpu 0 entering scheduler
APP|btc open
2024-08-28 14:33:02:983 -> [RADAR_LOG] alg ctrl read from nv [1][2][0][0][1][1][20]
2024-08-28 14:33:02:983 -> device_main_init: 0!
2024-08-28 14:33:02:986 -> ===hal_initialize_phy===225===
2024-08-28 14:33:02:988 -> device_module_init:: succ!
2024-08-28 14:33:02:994 -> cali_set_cali_mask:old[0x0] -> new[0x1fa2]
2024-08-28 14:33:02:995 -> fe_rf_initialize
2024-08-28 14:33:02:998 -> cali_offline_cali_entry enter
2024-08-28 14:33:03:017 -> cali_set_cali_done_flag:old[0x0] -> new[0x1]
2024-08-28 14:33:03:020 -> rf cali OK. time cost:22, ret:0
2024-08-28 14:33:03:989 -> uart1 poll mode send start!, len = 30
2024-08-28 14:33:03:991 -> uart1 poll mode send back succ!
2024-08-28 14:33:06:908 -> xo update temp:3,diff:0,xo:0x3083c

2 Answers

还有个问题,delay延时是不是有问题啊,我看程序里设置间隔1s发送一次,实际上我看到两帧间隔要在10s以上

不过你不修改TICK,直接osDelay(100)延迟也是1S

改这个是不是得去改Kconfig文件里面的default值啊?要不然重编译之后会根据KConfig把对应数值又改回去。

你这个好像不是这个的问题

不过这个间隔时间不准对于现在我来说还是小问题,主要是这个串口收发异常和日志的事情,这个很让人头大啊

你代码具体怎么改的

靠,知道啥问题了。串口polling接收,阻塞接收,相当于死掉了。看门狗重启后当时的一帧能收到,后面再也收不到,就这样依靠看门狗重启循环。那些日志是看门狗重启发出来的。行吧,接下来的问题转到了如何控制(关闭)看门狗并且使用中断接收了