#include #include #define BAUDRATE 9600 #define TIMEOUT 50000 // In Microseconds (so 50 seconds time out) int main(void){ struct sp_port *port, **port_list; // In this example port_list is never used. /* Opening the COMPORT. First function uses the portname to then get the pointer of the port that will be used. * Then the second function opens the port in read and write mode (ALWAYS CLOSE AT THE END OF THE PROGRAM!) * */ sp_get_port_by_name("COM6", &port); // COM6 is an example, should be changed to match your COM port sp_open(port, SP_MODE_READ_WRITE); // Configure port settings (baudrate defined above, no parity, 1 stop, no flowcontrol, 8 data bits) sp_set_baudrate(port, BAUDRATE); sp_set_parity(port, SP_PARITY_NONE); sp_set_stopbits(port, 1); sp_set_flowcontrol(port, SP_FLOWCONTROL_NONE); sp_set_bits(port, 8); unsigned char send_byte = 0b11110111; // An example of sending information unsigned char recv_byte; // Send data printf("Sending: %d", send_byte); // Lets the user know what is sent, helpful for debugging sp_nonblocking_write(port, &send_byte, 1); // Wait for response int bytes_read = sp_blocking_read_next(port, &recv_byte, 1, TIMEOUT); if (bytes_read == 1) { printf("Received: %d\n", recv_byte); } else { printf("Error reading from port.\n"); } // Close the port (unreachable in an infinite loop, but good practice) sp_close(port); sp_free_port(port); return 0; }