📄 testuart.c
字号:
#include <stdio.h>
#include <string.h>
#include <asixwin.h>
#include <asixapp.h>
#include <sys\sysdebug.h>
extern void testuart( );
TASKDESCRIPTION TestUartTskDesp =
{"test uart", ASIX_APP, 0, news, 2048, 1, LCD_WIDTH, LCD_HEIGHT, testuart, APP_PRI};
void testuart( )
{
MSG msg;
U32 mainwin;
U32 btsnd, btrcv, st;
// U32 hGC;
U8 quit = 0;
char begin[] = "OK", parity[] = "ER", len_b[2], sendbuf[32] = "abcd",rcvbuf[32];
U32 bufSize = 32;
// U32 tskid;
U32 count = 0, temp, total = 0;
mainwin = CreateWindow( WNDCLASS_WIN,
"串口测试",
WS_OVERLAPPEDWINDOW,
0,0,
PHY_LCD_W,PHY_LCD_H,
0,
0,
NULL);
st = CreateWindow( WNDCLASS_STATIC,
NULL,
WS_CHILD | SS_TEXT | SS_MULTILINE,
20,30,
32,20,
mainwin,
0,
NULL);
btsnd = CreateWindow( WNDCLASS_BUTTON,
"发送",
WS_CHILD | BS_REGULAR,
20,30,
32,20,
mainwin,
0,
NULL);
btrcv = CreateWindow( WNDCLASS_BUTTON,
"接收",
WS_CHILD | BS_REGULAR,
60,30,
32,20,
mainwin,
0,
NULL);
// get_tid( &tskid );
OpenUart( UART0 );
// SysOpenDev( tskid, UART0_ID );
// dbgprintf( "open uart!" );
while( !quit )
{
ASIXGetMessage( &msg, NULL, 0, 0 );
switch( msg.message )
{
case WM_COMMAND:
if( msg.lparam == btsnd )
//SysWriteDev( UART0_ID, sendbuf, 8, 0 );
WriteUart( UART0_ID, sendbuf, 8 );
else if( msg.lparam == btrcv )
{
EnableWindow( btsnd, FALSE );
// SysReadDev( UART0_ID, rcvbuf, 1, 0 );
// dbgoutput( "receive '%c' ", rcvbuf[0] );
}
break;
case SM_DATA_RECEIVED:
if( msg.lparam == UART0_ID )
{
count += msg.wparam;
total += msg.wparam;
//dbgoutput( "received: %d bytes", msg.wparam );
dbgoutput( "total received: %ld bytes", total );
while( count > bufSize )
{
SysReadDev( UART0_ID, rcvbuf, (U16)bufSize, 0 );
// ReadUart( UART0_ID, rcvbuf, (U16)bufSize );
count -= bufSize;
rcvbuf[bufSize] = '\0';
//dbgoutput( "receive '%s' ", rcvbuf );
}
// count -= ReadUart( UART0_ID, rcvbuf, count );
// temp = SysReadDev( UART0_ID, rcvbuf, (U16)count, 0 );
temp = ReadUart( UART0_ID, rcvbuf, (U16)count );
rcvbuf[temp] = '\0';
count = count - temp;
//dbgoutput( "receive '%s' ", rcvbuf );
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
// SysCloseDev( tskid, UART0_ID );
CloseUart( UART0 );
DestroyWindow( mainwin );
EndofTask();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -