标题: JQ8400语音模块一线串口控制程序,适用所有一线串口 [打印本页]

作者: cuiaibiao    时间: 2019-7-18 17:08
标题: JQ8400语音模块一线串口控制程序,适用所有一线串口
OneUart.c

#include "OneUart.h"
#include "delay.h"
#include "stm32f10x.h"
///////////////////////////////////////////////////////////////////////////////
//////函   OnUart_GPIO(void)
//////功   能:语音模块一线串口IO口
//////输入参数: void
//////输出参数: void
//////说   明:
//////////////////////////////////////////////////////////////////////////////
void OnUart_GPIO(void)
{
  RCC->APB2ENR|=1<<3;   //GPIOB
  RCC->APB2ENR|=1<<4;   //GPIOC
  
  //GPIOB.11
  GPIOB->CRH&=0xFFFF0FFF;     //清零
  GPIOB->CRH|=0x00003000;     //推挽输出 50MHZ
  GPIOB->ODR=~(1<<11);        //B.11低


GPIOC->CRH&=0xFF0FFFFF;
GPIOC->CRH|=0x00300000;  
GPIOC->ODR|=1<<13;        //C.13高  


}

///////////////////////////////////////////////////////////////////////////////
//////函   数:SendData(u8 addr)
//////功   能:语音模块一线串口
//////输入参数: addr要发送的0x数
//////输出参数: void
//////说   明:
//////////////////////////////////////////////////////////////////////////////
void SendData ( u8 addr )//发送函数。
{
    u8 i;
     /*发送时关掉中断,防止中断影响时序  */
    SDA = 1; /*开始拉高*/
    delay_us ( 1000 );
    SDA = 0; /*开始引导码*/
    delay_us ( 3200 );/*此处延时最少要大于2ms*/
    for ( i = 0; i < 8; i++ ) /*总共8位数据  */
    {
        SDA = 1;
        if ( addr & 0x01 ) /*3:1表示数据位1,每个位用两个脉冲表示  */
        {
            delay_us ( 600 );
            SDA = 0;
            delay_us ( 200 );
        }
        else              /*1:3表示数据位0 ,每个位用两个脉冲表示  */
        {
            delay_us ( 200 );
            SDA = 0;
            delay_us ( 600 );
        }
        addr >>= 1;
    }
    SDA = 1;
   
  //恢复中断
}


JQ8400-FL语音模块.7z

8.4 MB, 下载次数: 58, 下载积分: 黑币 -5


作者: admin    时间: 2019-7-18 19:10
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者: IdeaMing    时间: 2019-7-19 09:58
admin 发表于 2019-7-18 19:10
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)

最好也配上JQ8400的datasheet
作者: 老小怪    时间: 2020-4-10 17:52
51单片机的代码怎么写呢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1