硬件: 电脑——USBMIDI转接线——MIDI光耦隔离电路——单片机。 (STC8G1K08A)
MIDI-OX调试工具。
单片机发送方式:
SCON=0x50; //8位数据,可变波特率
AUXR|=0x40; //定时器1时钟为Fosc,即1T
AUXR&=0xFE; //串口1选择定时器1为波特率发生器
TMOD&=0x0F; //设定定时器1为16位自动重装方式
主频12M,波特率31250(31.25K),示波器查看单片机发出的信号,和电脑通过USBMIDI线输出的信号,几乎一致。无论是频率(波特率)还是数据
问题是: 发送90,3C,64这种标准MIDI格式的数据,转接线的接受灯不亮,midiox接收不到数据。
如果每次发送较多数据,就可以接收到——但接受到的是乱码。
我绕过单片机,使用MIDIOX发出Midi信号,同时电路上将输入输出接到一起,也是一样的问题。如下图;
一个和弦,相当于连续发送三个音符开,直接回环,输入端显示接收到这么个指令(F9)
然后松开按键,三个音符关,又出现另外的一个命令。
而且这个接受到的指令还不稳定,有时候会变成其他的字符。
所以不知道是啥问题,是这个转接线芯片的问题还是输入端需要什么其他的代码?谢谢。