https://groups.google.com/forum/#!searchin/beagleboard/Peter$20Hurdley|sort:date/beagleboard/GC0rKe6rM0g/lrHWS_e2_poJ
That's it, second post form the bottom. Make sure to thank Peter for sharing his code. On Fri, Jul 24, 2015 at 2:52 PM, William Hermans <[email protected]> wrote: > Sorry, I say "just", but Peter posted that link like a week or slightly > longer. Ago. > > On Fri, Jul 24, 2015 at 2:51 PM, William Hermans <[email protected]> > wrote: > >> *Is there someway of putting in a custom baud divisor in c code ideally? * >> >> >> Yes. Peter Hurdley just posted a link to some code to do exactly that on >> the forums here. The subject title was Portuguese( I think ), so should >> stand out if you search Peter's name, and sort by date. >> >> On Fri, Jul 24, 2015 at 11:15 AM, <[email protected]> wrote: >> >>> Hi I'm trying to set a MIDI connection through serial port 4 >>> >>> echo something > /dev/ttyO4 >>> works if I select one of the baud rates defined in termios.h (say 38400) >>> but doesn't work for 31250 (the MIDI baud rate). >>> >>> I have flashed to 4.1 (uname -r == 4.1.2-ti-r4) and can get a 500k Baud >>> serial port from another UART. With the idea that setting a divisor would >>> work out to the desired BAUD if I could set a divisor of 16. I have another >>> UART that needs to run at 1 MBaud. >>> >>> Is there someway of putting in a custom baud divisor in c code ideally? >>> >>> This is where I am at: >>> >>> void initializeBBB() { >>> FILE *uartFileManager; >>> //UART config using termios >>> struct termios midiTermios, picTermios, tempTermios; >>> >>> midiDevice = open( "/dev/ttyO4", O_RDWR | O_NOCTTY ); >>> if ( midiDevice < 0 ) { >>> printf("Error: MIDI connection failed to open"); >>> } >>> >>> tcgetattr( midiDevice, &tempTermios ); >>> bzero( &midiTermios, sizeof( midiTermios ) ); >>> midiTermios.c_cflag = B500000 | CS8 | CLOCAL | CREAD; >>> midiTermios.c_iflag = IGNPAR | ICRNL; >>> midiTermios.c_oflag = 0; >>> midiTermios.c_lflag = 0; >>> >>> midiTermios.c_cc[VTIME] = 0; >>> midiTermios.c_cc[VMIN] = 1; >>> >>> tcflush( midiDevice, TCIFLUSH ); >>> tcsetattr( midiDevice, TCSANOW, &midiTermios ); >>> } >>> >>> which will initialize ttyO4 to 500000 Baud. Placing in: >>> cfsetispeed(&midiTermios, 31250); >>> cfsetospeed(&midiTermios, 31250); >>> cfmakeraw(&midiTermios); >>> >>> before tcsetattr did not accomplish setting. >>> >>> midiTermios.c_ispeed = 31250; >>> midiTermios.c_ospeed = 31250; >>> >>> also didn't work. Are there ioctl commands available on the BBB? Any >>> help that doesn't make me use a MIDI --> USB cable and connect that way >>> would be appreciated. I would really like to not have to recompile the >>> kernel. >>> >>> Thanks, >>> >>> j >>> >>> -- >>> For more options, visit http://beagleboard.org/discuss >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "BeagleBoard" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
