That’s interesting – I haven’t run into that problem myself. Here’s a complete example as it appeared in my console window: For example, to set COM22 to 38,400 baud with 8 data bits and no parity checking: Input redirection is performed using the “\\.\COM22įinally, to configure the baudrate before sending a string to the serial port, the mode command can be used. This means that the command finishes immediately rather than waiting for something to be typed in. no input at all, rather than input from the console which would normally be the case). We don’t want the set command to sit around waiting for the user to enter a value for x, so the input to the set command is redirected from “nul” (i.e. All we really want is a way of outputting the string “hello” without any carriage return and line feed characters, and the set command just happens to provide a convenient way of doing it. Of course, we’re actually not interested in setting the value of x at all – it’s just a means to a different end. The prompt displayed on screen is the string provided in the command. When used with the “/p” switch, the set command prompts the user to enter a value for the environment variable. For example, the following command could be used to set an environment variable called x equal to the string “sunshine”: The set command is normally used to set the value of an environment variable. This probably looks a bit confusing, so let’s break it down. The following example is a more robust version of the command shown above: Higher numbered COM ports may not be recognised when written this way, but a workaround is shown below.In this case, an additional mode command can be used to configure the baudrate (and/or other serial parameters). The serial port you’re using may not already be set to the baudrate you desire.An alternative method of sending the string without these trailing characters using the set command is shown below. The first five byte values in the sequence are just the letters of the word “hello”, but the last three are the space, carriage return and line feed characters. I tested this myself by capturing the transmitted bytes using a microcontroller and then echoing their numerical values back to the screen – the values were: “104 101 108 108 111 32 13 10”. The string that gets sent in the above example is actually 8 bytes long because it includes the trailing space character after the word “hello” as well as carriage return and line feed characters.( SerialSend provides an easy alternative method of sending strings to whatever the highest numbered available COM port is, which can be very useful.) If you’re using a USB-to-serial converter, this number may change over time, especially if you plug the device into different USB sockets. You need to know the number of the COM port you want to send to.There are a couple of potential snags though: So the string “hello” gets sent to the serial port rather than to the screen. Here however, its output is redirected (using the “>” character) to the special filename “COM1”, which is actually a serial port rather than a file on disk. The echo command is typically used to display a string in the console. You can just type this command into a normal Windows console: The simplest case is something like the following which sends the string “hello” to COM1 (the first serial port). Instead you can just use Windows’ built-in echo, set and mode commands. I actually developed a small command line utility called SerialSend for doing exactly this, but in many cases you can get away without using any special programs at all. The sort of thing I might use this for is sending a command to a robot or other microcontroller-based device that I’m building using a USB-to-serial converter. I often need to send short character strings to a serial port in Windows.
0 Comments
Leave a Reply. |