【SoC 6 BLE原型开发板】+ 串口通信应用篇
[复制链接]
本帖最后由 jinglixixi 于 2024-1-19 00:54 编辑
上次参数例程中的串口通信程序,它可以实现数据的收发处理。
近于使用串口的设备及功能模块有许多,这次就将其用在MP3功能模块的控制上。
图1 MP3功能模块
由于PSoC Creator不像大多数IDE那样具有上一次所用工程的记忆性,因此需选取“Open Existing Project”来打开上一次所使用的例程,见图2所示。
图2 选取已有项目
在所选工程后,其界面如图3所示。
图3 打开项目
由图3可知,串口使用的接收引脚为P5.0,使用的发送引脚为P5.1。
此外,由图4可知该串口所设置的波特率为115200 bps。
图4串口通信参数
由于MP3功能模块所使用的波特率为9600 bps,因此需将程序中的波特率修改为9600 bps。
此外,由于控制MP3功能模块的指令要占10个字节,为便于控制便将其存入数组中。
存放指令的数字其格式如下:
uint8_tcmd3[] = {0X7E, 0xFF, 0x06, 0X03, 00, 00, 01, 0xFE, 0xF7, 0XEF}; //*play index
uint8_tcmd6[] = {0X7E, 0xFF, 0x06, 0X06, 00, 00, 10, 0xFE, 0xE5, 0XEF}; //*set Volume
实现指令控制MP3功能模块播放指定音乐的程序为:
int main(void)
{
uint32_tread_data;
cy_en_scb_uart_status_tinitstatus;
uint8_t i;
Cy_GPIO_Write(RED_LED_ERROR_0_PORT, RED_LED_ERROR_0_NUM, LED_OFF);
initstatus = Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context);
if(initstatus!=CY_SCB_UART_SUCCESS)
{
handle_error();
}
Cy_SCB_UART_Enable(UART_HW);
setVolume(18);
for(i=0;i<10;i++)
{
Cy_SCB_UART_Put(UART_HW, cmd6[i]); // 设置音量
}
for (;;)
{
if (0UL != Cy_SCB_UART_GetNumInRxFifo(UART_HW))
{
read_data = Cy_SCB_UART_Get(UART_HW);
playn(read_data);
for(i=0;i<10;i++)
{
Cy_SCB_UART_Put(UART_HW, cmd3[i]); // 播放指定音乐
}
}
}
}
经程序下载,其测试效果如图5至图7所示,说明输出指令正确。
图5 设置音量
在指定播放第一首后,其发出的播放指令如图6所示。
图6 播放第一首
若指定播放第二首,则发出的播放指令如图7所示。
图7 播放第二首
接下来要做的就是实际验证,为此要将MP3功能模块的RX引脚连接到P5.1,其实物连接见图9所示。
图8 开发板引脚排列
图9 实物连接
演示视频:
MP3
|