CH573調(diào)試串口協(xié)議遇到問題,求教

最近在調(diào)試串口協(xié)議時(shí)遇到些問題,向大家請(qǐng)教一下。

首先通過UART1_RecvString(RxBuff)將接收到的數(shù)據(jù)存入數(shù)組RxBuff中,然后判斷數(shù)組RxBuff前兩位是否等于0xaa和0xc0,如果等于將RxBuff輸出。調(diào)試中發(fā)現(xiàn)無法進(jìn)行等于判斷,請(qǐng)問大家是否遇到相似的問題。

#include "CH57x_common.h"


UINT8 TxBuff[] = "This is a tx exam\r\n";

UINT8 RxBuff[100];

UINT8 trigB;


int main()

{

? UINT8 len;


? SetSysClock( CLK_SOURCE_PLL_60MHz );


? /* 配置串口1:先配置IO口模式,再配置串口 */

? GPIOA_SetBits( GPIO_Pin_9 );

? GPIOA_ModeCfg( GPIO_Pin_8, GPIO_ModeIN_PU );// RXD-配置上拉輸入

? GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_5mA );? ? // TXD-配置推挽輸出,注意先讓IO口輸出高電平

? UART1_DefInit();



? while( 1 )

? {

? ? len = UART1_RecvString( RxBuff );

? ? if ( RxBuff[0]==0xaa&&RxBuff[1]==0xc0)

? ? {

? ? ? ?UART1_SendString( RxBuff, len );

? ? }

? }


}



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

兄弟,你是不是串口一直沒有下發(fā)數(shù)據(jù)啊,你不發(fā)數(shù)據(jù),UART1_RecvString一直在死等啊?


我在上位機(jī)上發(fā)的數(shù)據(jù),不錯(cuò)條件判斷時(shí),一發(fā)一收都正常,做判斷不對(duì)了


主要是做串口協(xié)議,需要判斷報(bào)頭數(shù)據(jù)和校驗(yàn)數(shù)據(jù),查到最后發(fā)現(xiàn)“==”等于運(yùn)算符不起作用


您好,您是用的查詢的方式去做的串口收發(fā),您可以在您那個(gè)條件判斷前面加上printf打印看一下您的那個(gè)RxBuff是不是這兩個(gè)數(shù)據(jù)(0xAA,0xC0)。


串口使用,對(duì)于實(shí)際項(xiàng)目或工程優(yōu)先用中斷方式,不管是及時(shí)性還是控制,對(duì)于整個(gè)項(xiàng)目都是優(yōu)先的選擇。

對(duì)于的確需要使用串口輪詢方式,可以添加如下方式查看原因

在while(1)循環(huán)內(nèi),可以添加打印len的長度。

while(1)

{

?????len = UART1_RecvString( RxBuff );

????if(len){

????????PRINT("len=%d\n",len);

????}

}

PC串口工具打印如截圖,UART1接收到的數(shù)據(jù)長度并不是一次性發(fā)送完成。

每次發(fā)送完成后都會(huì)對(duì)RxBuff,len重新賦值,所以if ( RxBuff[0]==0xaa&&RxBuff[1]==0xc0)不會(huì)成立

urt1.jpg



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

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