21ic电子技术开发论坛 单片机与嵌入式系统 Megawin(笙泉)单片机 SYN6288播放函数
发新帖我要提问
返回列表
打印
[范例教程]

SYN6288播放函数

[复制链接]
216|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
primojones|  楼主 | 2023-8-19 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static uint8_t dri_syn6288_sendText(uint8_t backSound,uint8_t *text)
{
    uint8_t tempBuf[DRI_SYN6288_BUFFER_LENGTH],i,crc = 0;
    uint16_t textLength; // 文本长度

    textLength = strlen((uint8_t*)text);
    /* 帧固定配置信息 */
    tempBuf[0] = 0xFD;    // 帧头
    // tempBuf[1] = textLength >> 8;    // 数据长度高字节
    tempBuf[1] = 0x00;    // 数据长度高字节
    tempBuf[2] = (textLength & 0xff) + 3;    // 数据长度低字节
    tempBuf[3] = 0x01;    // 构造命令字:合成播放命令
    /* 字节高5位表示背景音乐,低3位表示编码格式 0是GB2312编码 */
    tempBuf[4] = 0x01|(backSound << 4);    // 构造命令参数:背景音乐设定
    /* 校验码计算 */
    for(i = 0; i < 5; i++)
    {
        crc = crc ^ tempBuf[i];     // 对发送的字节进行异或校验
    }

    for(i = 0; i < textLength; i++)
    {
        crc = crc ^ text[i];         //对发送的字节进行异或校验
    }
    /* 发送数据 */
    memcpy(&tempBuf[5], text, textLength);
    tempBuf[5 + textLength] = crc;
    DRI_SYN6288_SEND_BUFFER(tempBuf,5 + textLength + 1); // 串口发送
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

1114

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部