2026-08-26 07:26:58 +08:00
|
|
|
#include "includes.h"
|
|
|
|
|
|
|
|
|
|
// Note Off 0x8n
|
|
|
|
|
void SendNoteOffMidiEvent(uint8_t Key, uint8_t OffVal)
|
|
|
|
|
{
|
|
|
|
|
uint8_t midibuff[3] = {0x80 , Key , OffVal};
|
|
|
|
|
USART2_SendData(midibuff,sizeof(midibuff));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Note On 0x9n
|
|
|
|
|
void SendNoteOnMidiEvent(uint8_t Key, uint8_t OnVal)
|
|
|
|
|
{
|
|
|
|
|
uint8_t midibuff[3] = {0x90 , Key , OnVal};
|
|
|
|
|
USART2_SendData(midibuff,sizeof(midibuff));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SendProgramChangeMidiEvent(uint8_t channel,uint8_t CC)
|
|
|
|
|
{
|
|
|
|
|
uint8_t midibuff[2] = {0xC0|channel , CC };
|
|
|
|
|
SendMidiDataToDreamDSP(midibuff,2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SendVolumeChangeMidiEvent(uint8_t channel,uint8_t CC)
|
|
|
|
|
{
|
|
|
|
|
uint8_t midibuff[3] = {0xB0|channel ,0x07, CC };
|
|
|
|
|
SendMidiDataToDreamDSP(midibuff,3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SendBankChangeMidiEvent(uint8_t CC)
|
|
|
|
|
{
|
|
|
|
|
uint8_t midibuff[3] = {0xB0 ,0x00, CC };
|
|
|
|
|
SendMidiDataToDreamDSP(midibuff,3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SendMidiDataToDreamDSP(uint8_t* buff, uint16_t cnt)
|
|
|
|
|
{
|
|
|
|
|
USART2_SendData(buff,cnt);
|
|
|
|
|
}
|
2026-09-08 12:37:29 +08:00
|
|
|
|
|
|
|
|
#define AT32_UID_BASE 0x1FFFF7E8UL
|
|
|
|
|
|
|
|
|
|
void BleBuildDeviceName(char *out)
|
|
|
|
|
{
|
|
|
|
|
static const char hex[] = "0123456789ABCDEF";
|
|
|
|
|
const uint32_t *uid = (const uint32_t *)AT32_UID_BASE;
|
|
|
|
|
uint32_t tail = uid[2] & 0x00FFFFFFu;
|
|
|
|
|
unsigned i;
|
|
|
|
|
|
|
|
|
|
out[0] = 'P';
|
|
|
|
|
out[1] = 'H';
|
|
|
|
|
out[2] = 'O';
|
|
|
|
|
out[3] = 'N';
|
|
|
|
|
out[4] = '_';
|
|
|
|
|
for (i = 0; i < 6; i++)
|
|
|
|
|
out[5 + i] = hex[(tail >> (4 * (5 - i))) & 0xFu];
|
|
|
|
|
out[BLE_DEVICE_NAME_LEN] = '\0';
|
|
|
|
|
}
|