weixin_44143610
weixin_44143610
2021-01-24 21:33

单片机发送MIDI数据的问题

  • c++
  • 开发语言

硬件: 电脑——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)

然后松开按键,三个音符关,又出现另外的一个命令。

而且这个接受到的指令还不稳定,有时候会变成其他的字符。

所以不知道是啥问题,是这个转接线芯片的问题还是输入端需要什么其他的代码?谢谢。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答

为你推荐

换一换