*1、电台收索指令 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x01''''''0x05''' 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x01''' 0x5a **说明:PC发起收索电台指令,'''0x01'''为指令代号,'''0x05''' 表示接收的信号信噪比阀值(大于0x05db为有效电台,0到127db),0xa5为帧头,0xa5为帧尾,STM32收到此命令后,先返回应答,再收索电台 *2、读取电台指令 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x02''' 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x02''''''0x05''' 0x03 '''0x2e 0x22''' 0x0f '''0x0a 0x23''' 0x08 '''0x1e 0x28''' 0x0a '''校验''' 0x5a **说明:PC发起收索电台指令,'''0x02'''为指令代号,0xa5为帧头,0xa5为帧尾,STM32收到此命令后,先返回电台数以及电台频率。其中:'''0x05'''为接收的信号信噪比阀值,0x03 电台数目,'''0x22 0x2e'''=0x222e=8750表示频率为87.5MHZ的电台,0x0f表示收到此电台的信噪比,后面依次。'''校验''' 为除帧头后面,校验前面的数字的CRC16校验 *3、音量设置指令 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x03''' 0x13 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x03''' 0x13 0x5a **说明:PC发起收索电台指令,'''0x03'''为指令代号,0xa5为帧头,0xa5为帧尾,0x13为音量值(0到63),STM32收到此命令后,先返回应答。 *4、电台设置指令 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x04''' '''0x0a 0x23''' 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x04''' '''0x0a 0x23''' '''0x2d''' '''0x33''' 0x5a **说明:PC发起收索电台指令,'''0x04'''为指令代号,0xa5为帧头,0xa5为帧尾,'''0x23 0x0a''' = 0x230a=8970=89.7MHZ,STM32收到此命令后,先返回应答。0x2d = 45,表示信号强度为45dBµV,0x33=51,表示信噪比为51db。 *5、STM32发送检测到播放喊话器语言命令 **STM32发送到PC:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x05''' '''0x01''' 0x5a **pc应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x05''' '''0x01''' 0x5a **说明:STM32检测到是否播放喊话器的语音,'''0x05''' 为指令序号,'''0x01''' 表示播放喊话器语音(此时对FM 多媒体语音静音),如果是'''0x02'''时则不播放喊话器语音不多FM和多媒体静音。 *6、读取当前工作电台信息 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x06''' 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x06''' '''0x0a 0x23''' '''0x2d''' '''0x33''' 0x5a **说明:PC发起收索电台指令,'''0x06'''为指令代号,0xa5为帧头,0xa5为帧尾,'''0x23 0x0a''' = 0x230a=8970=89.7MHZ,STM32收到此命令后,先返回应答。0x2d = 45,表示信号强度为45dBµV,0x33=51,表示信噪比为51db。 *7、读取当前温度 **PC到STM32:0xa5 0xa5 0xa5 0xa5 0xa5 '''0x07''' 0x5a **STM32应答: 0xa5 0xa5 0xa5 0xa5 0xa5 '''0x07''' '''0x00''' '''0x0097''' '''0xXX 0xXX''' 0x5a **说明:PC发起收索电台指令,'''0x07'''为指令代号,0xa5为帧头,0xa5为帧尾,'''0x00'''表示温度为正数(0x01表示温度为负数,其他表示温度数据有错),温度(低位在前,高位在后),后面的0xXX 0xXX 为CRC16校验 * 数据转义 **封装过程: ***a) PHY1中遇到 0xA5,则将之转义为 0xA6,0x02,如遇到 0xA6,则将之转义为 0xA6,0x01 ***b) PHY1中遇到 0x5A,则将之转义为 0x5B,0x02,如遇到 0x5B,则将之转义为 0x5B,0x01 **解包过程: ***a) 如果遇到连续两个字节为 0xA6, 0x02 ,则反转义为 0xA5 ***b) 如果遇到连续两个字节为 0xA6, 0x01 ,则反转义为 0xA6 ***对 0X5A的解包同 0XA5 *''' FM调试模块说明 ''' **1、收索台工程中,大概需耗时25秒左右,出过程中,FM模块不接收PC发送过来的指令。上电后,模块首先收索电台,此时不接收串口命令。PC上电后,需要在25秒后再发送命令给模块; **2、FM模块保存PC最后一次发送过来的电台频率,每次上电后,收索电台,更新电台列表,将保存的频率值插入电台列表,接收保存的频率的电台; **3、FM模块不保存音量,未收到PC发送的音量,使用默认音量 (0x39),建议不使用串口调节音量,音量调节直接使用PC调节输出音量;