STM32F407单片机读写 US-100超声波测量距离和温度串口屏显示DEMO软件例程源码,可以做为你的学习和设计参考。
int main(void)
{
/* 复位所有外设,初始化Flash接口和系统滴答定时器 */
HAL_Init();
/* 配置系统时钟 */
SystemClock_Config();
/* 初始化串口并配置串口中断优先级 */
MX_DEBUG_USART_Init();
US100_USARTx_Init();
HMI_USARTx_Init();
/* 启用串口接收监听,有数据则进入中断回调 */
HAL_UART_Receive_IT(&husartx,&aRxBuffer1[0],2);
/* 无限循环 */
while (1)
{
if( HAL_UART_Transmit(&husartx,&aTxBuffer1[0],1,0xFFFF)==HAL_OK);
{
flag1=1;
HAL_Delay(1000);
}
if( HAL_UART_Transmit(&husartx,&aTxBuffer2[0],1,0xFFFF)==HAL_OK);
{
flag2=1;
HAL_Delay(1000);
}
}
}
/**
* 函数功能: 接收中断回调函数
* 输入参数: 无
* 返 回 值: 无
* 说 明: 无
*/
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
if (flag1==1)
{
uint16_t temp;
temp=aRxBuffer1[0]*256+aRxBuffer1[1];
printf("测量的距离为:%dmm\n",temp);
HMI_value_setting("page1.net.val",temp*10);
flag1=0;
HAL_UART_Receive_IT(&husartx,&aRxBuffer1[0],1);