{"id":28961220,"url":"https://github.com/xanthium-enterprises/serial-port-programming-tutorial-win32-api","last_synced_at":"2026-04-30T16:33:55.299Z","repository":{"id":300369782,"uuid":"1004972444","full_name":"xanthium-enterprises/serial-port-programming-tutorial-win32-api","owner":"xanthium-enterprises","description":"Introduction to Serial Port Programming using Win32 API for Communicating with external devices like Raspberry Pi Pico or Arduino ","archived":false,"fork":false,"pushed_at":"2025-06-23T10:14:30.000Z","size":600,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-30T16:33:49.146Z","etag":null,"topics":["arduino","arduino-uno","raspberry-pi-pico","serial-communication","serialport","system-programming","win32","win64","windows-10","windows-11"],"latest_commit_sha":null,"homepage":"https://www.xanthium.in/serial-port-communication-with-microcontroller-programming-using-win32-win64-native-api","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xanthium-enterprises.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T13:11:45.000Z","updated_at":"2026-03-05T11:10:39.000Z","dependencies_parsed_at":"2025-06-21T10:19:04.003Z","dependency_job_id":null,"html_url":"https://github.com/xanthium-enterprises/serial-port-programming-tutorial-win32-api","commit_stats":null,"previous_names":["xanthium-enterprises/serial-port-programming-tutorial-win32-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xanthium-enterprises/serial-port-programming-tutorial-win32-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xanthium-enterprises%2Fserial-port-programming-tutorial-win32-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xanthium-enterprises%2Fserial-port-programming-tutorial-win32-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xanthium-enterprises%2Fserial-port-programming-tutorial-win32-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xanthium-enterprises%2Fserial-port-programming-tutorial-win32-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xanthium-enterprises","download_url":"https://codeload.github.com/xanthium-enterprises/serial-port-programming-tutorial-win32-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xanthium-enterprises%2Fserial-port-programming-tutorial-win32-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32470879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-uno","raspberry-pi-pico","serial-communication","serialport","system-programming","win32","win64","windows-10","windows-11"],"created_at":"2025-06-24T02:01:19.034Z","updated_at":"2026-04-30T16:33:55.281Z","avatar_url":"https://github.com/xanthium-enterprises.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Windows Serial Port Programming Tutorial using C/C++ and Win32 API\n![](docs/download-windows-serial-programming-code-github.png)\n\n- Introduction to Serial Port Programming using Win32 API for Communicating with external devices like Raspberry Pi Pico or Arduino.\n- This project demonstrates how to perform **serial port communication** between a **Windows PC** and an **embedded system (like an ATmega microcontroller)** using the **native Win32/Win64 API** in C. \n- The program does **not require any external libraries** such as MFC or .NET, and can be compiled using **Visual Studio**.\n- Designed for an Software Developer who wants to dabble in Windows System Programming \n\n## Online Tutorial \n[![Serial Communication between Windows OS and Arduino Board using C/C++](docs/Windows-11-serial-communication-arduino-c.png)](https://www.xanthium.in/serial-port-communication-with-microcontroller-programming-using-win32-win64-native-api)\n\n- [Serial Port Communication between Windows OS and Arduino Board using C/C++ and Win32 API Tutorial](https://www.xanthium.in/serial-port-communication-with-microcontroller-programming-using-win32-win64-native-api)\n\n## Screenshots of Win32 Serial port Code in Action\n\n-![Serial port program receiving data using WaitCommEvent() ](docs/serial-port-reception-program-win32-api-event-driven.jpg)\n\n## Major Features of Win32 COM port tutorial\n\n- [Link to Comprehensive introduction to Serial port programming using Win32 and C](https://www.xanthium.in/serial-port-communication-with-microcontroller-programming-using-win32-win64-native-api)\n- Direct access to COM ports using the Win32 API and C language\n- Compatible with both 32-bit and 64-bit Windows OS (Windows 7,Windows 8,Windows 10,Windows 11)\n- Useful for communication with microcontrollers, Arduino, sensors, etc.\n- Learn to Read and Write into Windows Serial Port using Win32 API and C/C++\n- Learn to set Read Timeouts in Windows Serial port Programming\n- We teach how to read from serial port using polling strategy and ReadFile() function\n- Learn to build event driven serial communication system using the  WaitCommEvent()\n- Build a Bi-Directional Serial Communication link between Windows PC and Arduino using Win32 API in C/C++\n\n## Prerequisites\n\n- Windows (Win10/11 32/64-bit)\n- Visual Studio 2017/2019/2022\n- Basic knowledge of **C** and serial communication\n- Arduino or other Microcontroller Board \n\n## Hardware Setup for Serial Port Communication with Microcontroller using Win32 API\n\nYou will need:\n- A USB-to-Serial converter or real serial port (e.g., COM1)\n- A microcontroller or loopback device for testing\n- (Optional) Virtual Serial Port Emulator if no hardware is available\n- ![Serial /RS232 Communication between Windows 10 /11 PC and Arduino UNO](docs/serial-communication-between-arduino-windows11-win32-c-cpp.jpg)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxanthium-enterprises%2Fserial-port-programming-tutorial-win32-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxanthium-enterprises%2Fserial-port-programming-tutorial-win32-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxanthium-enterprises%2Fserial-port-programming-tutorial-win32-api/lists"}