C Source Code Serial Port Communication Tutorial

  1. Serial Communication Tutorial
  2. C Code Serial Communication

It is old, but probably newer than whatever DOS stuff you are trying now. DJGPP has support for termios.h which lets you use similar methods as Linux to access the serial port Documentation of DJGPP termios DJGPP C Library Reference Example of using termios linux - how to open, read, and write from serial port in C - Stack Overflow. Re: Serial port program in c language And if you can only use windows APIs,you can try in this way.use CreateFile to control the port.Following is the sourcecode. It opens the port, sets the Baud Rate,and you can use WriteFile and ReadFile functions to receive and send data.You can also search in MSDN for details. For demo code that conforms to POSIX standard as described in Setting Terminal Modes Properly and Serial Programming Guide for POSIX Operating Systems, the following is offered. This code should execute correctly using Linux on x86 as well as ARM (or even CRIS) processors. Note: It is not worth trying to code the value into the C source as it will use a non-standard method of programming. Alternatively download winpic800 (look online to download it) and set the device to 12F675, load up the hex file and go to the memory location in winpic800 and type in the last location the value 34 followed by the CAL value you. A short tutorial on building a Graphical User interface (GUI) Serial communication program using C# and Dotnet framework.The C# program is then used for communicating with an Arduino Uno /Microcontroller (ATMEL AVR,Mirochip PIC,MSP430) to send and receive data from Windows OS.You can use the opensource code to develop your own C# based serial control program.

Serial Communication Tutorial

The Communication Device Class (CDC) is used for implementing virtual communication ports. This example demonstrates a bridge between a Virtual COM Port on the USB Host Computer and an UART port on the evaluation board.

The following picture shows an exemplary connection of the development board and the USB Host Computer.

The Abstract.txt file contained in the Documentation group of the Project window gives you more information on the general setup and the available I/O on the development board.

Open the example project in MDK. The µVision Project window should display a similar project structure:

Source Files

  • VirtualCOM.c contains the main C function that initializes the board hardware and the USB Device Component. Furthermore, it contains the code that exchanges the data internally between the USB and the UART port.
  • The USBD_User_CDC_0.c is an adapted code template that implements all necessary file access functions. Refer to CDC: Communication Device Class (ACM) for details about these template functions.

If you are using RTOS other than CMSIS-RTOS2 RTX5 for your project please make sure to satisfy USB Device Resource Requirements.

C Source Code Serial Port Communication Tutorial

You may now build and download the example project to the evaluation board using the µVision commands:

  • Project –> Build target (F7)
  • Flash –> Download (F8)

After these steps, the project should start executing on your evaluation kit. In case of errors, refer to the Evaluation Board User's Guide for configuration information.

Hardware Setup

The setup of the Evaluation Board hardware is described in the Abstract.txt file.

  • Verify all jumper settings on the target hardware.
  • Connect the UART on the development board to your PC (you might need an USB to serial RS232 adapter). Use an USB cable to connect your development board to the Host PC and power up your board.
  • The Welcome to the Found New Hardware Wizard appears. Installation of the driver is described in detail in the Abstract.txt file.

PC Software

The USB Device Virtual COM example can be tested on a Windows PC using a terminal emulation program. Since Hyperterminal in not part of Windows any more, please download an appropriate program for this purpose (such as PuTTY for example). Open the two COM ports 'COMx' and 'COMy'. Any data from 'COMx' will be echoed on 'COMy' and visa versa:

About Host PC driver for Microsoft Windows

Program

The example folder contains two files relevant for driver installation on the Microsoft Windows:

  • Driver setup information file (xxx-vcom.inf) which is used to create a digitally signed driver catalog file (xxx-vcom.cat)
  • Digitally signed driver catalog file (xxx-vcom.cat)

The driver files are provided as an example, the driver setup information file should be adapted and digitally signed driver catalog file should be created from adapted driver setup information file.

Source

Driver setup information file should be adapted in the following way:

C Code Serial Communication

  • c251 in Vendor ID VID_c251 entries should be changed to the vendor ID number assigned to your company by the USB organization (c251 Vendor ID is reserved for Keil Software and should not be used)
  • xxxx in Product ID PID_xxxx entries should be changed to the product ID as assigned by your company
  • in [DeviceList.xxx] sections, entries not relevant for the device, should be removed or added as described below:
    • if device is pure CDC class device (not composite) then all entries ending with &MI_xx should be removed
    • if device is a composite device with one or more CDC class instances then entries not ending with &MI_xx should be removed and entries ending with &MI_xx should exist for each CDC class instance (example driver contains entries ending with &MI_00 and &MI_02 which are used for composite device containing two CDC class instances and each instance uses 2 interfaces where MI_00 describes first CDC instance and MI_02 entry describes second CDC instance)
  • [Strings] section should be changed as desired
Note
Vendor ID and Product ID are configured in the USBD_Config_n.c configuration file of the embedded application.
For producing digitally signed driver catalog file please refer to Microsoft Windows documentation.