本帖最后由 jinglixixi 于 2023-10-27 23:54 编辑
CW32L031开发板配有相应的串口及例程资源,以例程UART_Polling为例它可实现两板间的串行通讯。 若只有一个开发板,则可以通过串口模块与电脑相连来进行功能测试。 在开发板上配置的串行接口如图1所示,使用引脚与连接关系为: UART1_TXD (PA08) -- PCRX UART1_RXD (PA09) -- PCTX
图1 串行接口
其主程序的内容为: int32_t main(void)
{
RCC_Configuration();
GPIO_Configuration();
UART_Configuration();
USART_SendBuf_Polling(DEBUG_USARTx, TxRxBuffer, ARRAY_SZ(TxRxBuffer) - 1);
while(1)
{
TxRxBufferSize = USART_RecvBuf_Polling(DEBUG_USARTx, TxRxBuffer);
USART_SendBuf_Polling(DEBUG_USARTx, TxRxBuffer, TxRxBufferSize);
}
}
在运行该程序时,其输出信息见图2所示。当发送相应信息时,则会原文回应,见图3所示,这就验证该程序的数据收发功能。 图2 接收发送信息
图3 原文回应
以此为基础,在按键和串口型超声波测距模块的配合下,可实现物距的检测功能。
检测结果:FF 07 C5 CB = 1989 mm 检测结果:FF 06 15 1A = 1557 mm
发送指令:0x55
在进行测试时,以串口发送检测指令0x55,则可得到相应的检测反馈信息,见图4所示。 其中: FF是识别符 07 C5是检测值,换算为数据值数是1989,单位为mm,即1.989米。 CB是校验码,它等于FF+07+C5。
图4 测试结果
在模拟方式下,其发送检测指令与接收模拟信息的主程序为: int32_t main(void)
{
InitTick(8000000);
RCC_Configuration();
GPIO_Configuration();
UART_Configuration();
USART_SendData_8bit(DEBUG_USARTx, 0x55);
while(1)
{
TxRxBufferSize = USART_RecvBuf_Polling(DEBUG_USARTx, TxRxBuffer);
USART_SendBuf_Polling(DEBUG_USARTx, TxRxBuffer, TxRxBufferSize);
SysTickDelay(500);
USART_SendData_8bit(DEBUG_USARTx, 0x55);
}
}
经检测,其测试效果如图5所示,说明在进入超声波测距模块后是可以运转起来的。 图5 模拟测试
在添加LCD5110显示屏的情况下,其检测与显示的主程序为: int32_t main(void)
{
unsigned int l,n=0;
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_HSI_Enable(RCC_HSIOSC_DIV6);
__RCC_GPIOC_CLK_ENABLE();
InitTick(8000000);
RCC_Configuration();
GPIO_Configuration();
UART_Configuration();
LCD5510_CONFIG();
LED_SetHigh();
CS_SetLow();
LCD5510_Init();
LCD_prints(0,0,"CW32L031");
LCD_prints(2,1,"0.000 m");
LCD_printc(0,1,'L');
LCD_printc(1,1,'=');
l=0;
USART_SendData_8bit(DEBUG_USARTx, 0x55);
while(1)
{
TxRxBufferSize = USART_RecvBuf_Polling(DEBUG_USARTx, TxRxBuffer);
if(TxRxBufferSize>0)
{
l=TxRxBuffer[1]*256+TxRxBuffer[2];
}
else
{
l=0;
}
LCD_printc(2,1,l/1000+'0');
LCD_printc(4,1,l%1000/100+'0');
LCD_printc(5,1,l%100/10+'0');
LCD_printc(6,1,l%10+'0');
SysTickDelay(5000);
USART_SendData_8bit(DEBUG_USARTx, 0x55);
}
}
经程序的编译与下载,其检测效果如图6至图8所示。 图6 检测右侧距离
图7 检测左侧距离
图8 检测上方距离
|