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