CH71F BLE-UART例程低波特率重啟

我們在BLE-UART例程基礎(chǔ)上開發(fā)的,使能看門狗后,發(fā)現(xiàn)當(dāng)設(shè)置1200波特率時候,發(fā)送16字節(jié)內(nèi)容會導(dǎo)致看門狗復(fù)位,每次必現(xiàn)。

調(diào)用的發(fā)送函數(shù)是app_uart_tx_data(data,length);發(fā)送16字節(jié)內(nèi)容,調(diào)整波特率為2400以上后,就不復(fù)位了。這個uart3的發(fā)送函數(shù)我改成了uart1,測量uart1是可以正確發(fā)出來的。

第一個想到是發(fā)送函數(shù)阻塞導(dǎo)致不能及時喂狗導(dǎo)致的,但是研究看看送函數(shù)那里并沒有阻塞,最多阻塞8個字節(jié)的時間,在此處加喂狗指令,故障依舊。

void app_uart_process(void)

{

? ? UINT32 irq_status;

? ? SYS_DisableAllIrq(&irq_status);

? ? if(uart_rx_flag)

? ? {

? ? ? ? tmos_start_task(Peripheral_TaskID, UART_TO_BLE_SEND_EVT, 2);

? ? ? ? uart_rx_flag = false;

? ? }

? ? SYS_RecoverIrq(irq_status);



? ? //tx process

? ? if(R8_UART1_TFC < UART_FIFO_SIZE)

? ? {


//PRINT("R8_UART1_TFC:%d\n",R8_UART1_TFC);

? ? ? ? app_drv_fifo_read_to_same_addr(&app_uart_tx_fifo, (uint8_t *)&R8_UART1_THR, UART_FIFO_SIZE - R8_UART1_TFC);

? ? }

}

繼續(xù)研究,在主循環(huán)里發(fā)現(xiàn)兩個函數(shù),一個是TMOS系統(tǒng)的輪詢,一個是串口發(fā)送處理函數(shù),通過添加復(fù)位、置位io看發(fā)現(xiàn)TMOS_SystemProcess();函數(shù)執(zhí)行時間超過400ms左右,用示波器看低電平時間在400ms左右。因?yàn)門MOS的沒有源碼,我向問官網(wǎng)技術(shù)人員,怎么看TMOS哪個任務(wù)占用CPU時間過長了,有沒有好的方法查這個問題

__attribute__((section(".highcode")))

void Main_Circulation()

{

? ? while(1)

? ? {

? ? GPIOA_ResetBits(GPIO_Pin_12);

? ? ? ? TMOS_SystemProcess();

? ? ? ? *((unsigned char*)0x40001043) = 0;//喂狗

? ? ? ? GPIOA_SetBits(GPIO_Pin_12);

? ? ? ? app_uart_process();

? ? }

}




熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

請技術(shù)人員回復(fù)下,需要我怎么配合才能找出這個問題點(diǎn),我可以發(fā)工程出來,有負(fù)責(zé)這塊的技術(shù)人員電話嗎?比較著急,感謝了!


@TECH13?TECH46?TECH0-100 麻煩有空回復(fù)下


我們這邊測試沒有復(fù)現(xiàn)問題。工程文件可以發(fā)送至以下郵箱hy@wch.cn。


感謝@TECH_JW,我今天發(fā)現(xiàn)是我們串口連接的設(shè)備發(fā)生了自發(fā)自收現(xiàn)場,ch573串口接收處理函數(shù)里面放了以下log打印,但是ch573調(diào)試串口也調(diào)成1200了,導(dǎo)致PRINT時間邊長了導(dǎo)致重啟,后來我在另一個帖子中問了usb cdc的問題,現(xiàn)在我已經(jīng)把log打印都重定向到usb cdc了,現(xiàn)在沒有樓主為提到的問題了,感謝!


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频