微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求教C语言编写电脑端串口发送程序!

求教C语言编写电脑端串口发送程序!

时间:10-02 整理:3721RD 点击:
用API函数CreateFile和WriteFile的。
用API函数CreateFile和WriteFile的。
用API函数CreateFile和WriteFile的。
用API函数CreateFile和WriteFile的。

#include <stdio.h>
#include <conio.h>
#include <windows.h>
int main(void)
{
        char ch;
        DCB dcb;
        HANDLE my_Comm;
        DWORD dwWritenSize = 1;
        OVERLAPPED m_OverlappedWrite;
        BOOL fWriteStat ;
        char szBuffer[1];
        my_Comm = CreateFile("COM3",
                                                  GENERIC_READ | GENERIC_WRITE,
                                                  0,
                                                  NULL,
                                                  OPEN_EXISTING,
                                                  FILE_FLAG_OVERLAPPED,
                                                  NULL);                // 打开串口,异步操作
        if( my_Comm == NULL ) return( FALSE );
        dcb.DCBlength = sizeof( DCB );
        GetCommState( my_Comm, &dcb ); // 获得端口默认设置
        dcb.BaudRate =4800;
        dcb.ByteSize =8;
        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT ;
        dcb.fBinary = TRUE ;
        dcb.fParity = FALSE;
        SetCommState(my_Comm, &dcb ) ; //串口参数配置      
        /*********************************/
        while(1)
        {
                printf("Input a character:");
                ch = getch();
                printf("\nYou input a '%c'\n", ch);
                szBuffer[0]=ch;
                fWriteStat = WriteFile( my_Comm, szBuffer, 1,&dwWritenSize,&(m_OverlappedWrite));
                if(!fWriteStat)
                printf("send error!\n");
        }
        return 0;
}

我这个程序不知为什么发送不成功,但已经打开串口了

51单片机端用串口方式1,波特率4800,和串口调试助手通信没问题

程序想实现从键盘输入一个字符后立即发给单片机

你的PC是什么系统呀?
上面程序是 串口3的,你要确定你的电脑是否有 串口3,
然后主程序是需要有个按钮按下,才发送的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top