373|2

381

帖子

2

资源

一粒金砂(高级)

上海航芯ACM32F070开发板评测 4、基于ACM32F070的体温检测报警系统 [复制链接]

本帖最后由 wenyangzeng 于 2022-10-1 10:48 编辑

上海航芯ACM32F070开发板评测 4、基于ACM32F070的体温检测报警系统

 

基于ACM32F070的体温检测报警系统使用的开发板的硬件资源框图如下:

 

103236fxbpffg0a0ak5xff.png

1、外接测温头通过USART串口向主机发送温度数据;

2、开发板的LCD显示器上一行显示预设报警上限值,下一行显示检测的温度值。报警温度值和检测温度值显示2位整数,一位小数;

3、当检测的温度值超过预设值报警值后蜂鸣器声响报警,USR LED熄灭。这个USR LED由于是绿色的,只能安排正常时亮起,报警时熄灭;

4、触摸按键使用了左右两键TK7和TK9用于调节预设的超温报警值。

软件直接调用航芯官方演示代码包的LCD、触摸屏、串口通讯LED等演示代码稍加修改而成。

103236baayc1p69dpd6d17.jpg

 

部分代码

#include "APP.h" 
GPIO_InitTypeDef GPIOC_Handle;  
UART_HandleTypeDef UART2_Handle;
GPIO_InitTypeDef GPIOD_Handle; 
extern uint8_t gu8_TxBuffer[6];
extern uint8_t gu8_RxBuffer[6];
void Uart_Init(uint32_t fu32_Baudrate)
{
    UART2_Handle.Instance = UART2;
    UART2_Handle.Init.BaudRate   = fu32_Baudrate;
    UART2_Handle.Init.WordLength = UART_WORDLENGTH_8B;
    UART2_Handle.Init.StopBits   = UART_STOPBITS_1;
    UART2_Handle.Init.Parity     = UART_PARITY_NONE;
    UART2_Handle.Init.Mode       = UART_MODE_TX_RX_DEBUG;
    UART2_Handle.Init.HwFlowCtl  = UART_HWCONTROL_NONE;
    HAL_UART_Init(&UART2_Handle);
    HAL_UART_Enable_Disable_FIFO(&UART2_Handle,FUNC_ENABLE); 
    HAL_UART_Receive_IT(&UART2_Handle, gu8_RxBuffer, sizeof(gu8_RxBuffer), UART_RX_FIFO_1_2); 
   GPIOD_Handle.Pin       = GPIO_PIN_3;
   GPIOD_Handle.Mode      = GPIO_MODE_OUTPUT_PP;
   GPIOD_Handle.Pull      = GPIO_PULLUP;
   GPIOD_Handle.Alternate = GPIO_FUNCTION_0;
    HAL_GPIO_Init(GPIOD, &GPIOD_Handle);
System_Get_APBClock());
}
int main(void)
{
    System_Init(); 
    Uart_Init(9600);
    App_Test();
    while(1);
    
}
void App_Test(void)
{   
    uint8_t  fu8_Tkey_state = 0xff;
    uint8_t  ret = 0;
    LCD_Config();  
    SHT30_Init();
    BUZZER_Init();
    ret = TouchKey_Init();
   Disp_Number();
    SysTick_Handler_Callback = SysTick_Callback;

    while(1)
    {
   HAL_UART_Receive_IT(&UART2_Handle, gu8_RxBuffer, sizeof(gu8_RxBuffer), UART_RX_FIFO_1_2);  
	if(gu32_RxCpltStatus2==true)
	{
	gu32_RxCpltStatus2=false;
	UxART_RxTest();
	}
        fu8_Tkey_state = TK_TimerSacn_GetKeyVal();
        if(fu8_Tkey_state != 0xFF)
          {
            Beep_On(25);
         }
        TKEY_Calibrate_Process();

	if(fu8_Tkey_state == 7)				
	{
		if(Set_Temperature<420)
			Set_Temperature++;
		 Disp_Number();
	}
	else
	if(fu8_Tkey_state == 9)				
	{
	if(Set_Temperature>340)
		Set_Temperature--;
	Disp_Number();
	}
    }
}

 

void UxART_RxTest(void)
{
	uint8_t i;
  uint16_t temp; 
	uint16_t C_RC;
	C_RC=0x00;	

		for(i=0;i<5;i++)
		C_RC +=gu8_TxBuffer;
		C_RC &=0x00ff;
		if(C_RC==gu8_TxBuffer[5])
		{
			temp=gu8_TxBuffer[3]<<8;
			temp |=gu8_TxBuffer[4];
			Temperature=BCD2HEX(temp);
			Disp_Number();
			if(Temperature>Set_Temperature)
			{
				HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_SET);
			Beep_On(500);
				HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_CLEAR);
			}
		}

}

运行结果视频:

 

 

视频中,显示第一行是预设报警值,第二行是检测温度值。

 

通过本次评测,深深体会到上海航芯ACM32F070是一款性能优良,上手容易的ST系列芯片的优选替代品,可以方便应用的各种产品的开发应用。

 谢谢EEWORLD,谢谢上海航芯提供本次评测机会。


回复

1

帖子

0

资源

一粒金砂(初级)

路过                     

回复

2601

帖子

3

资源

版主

通过本次评测,深深体会到上海航芯ACM32F070是一款性能优良,上手容易的ST系列芯片的优选替代品,可以方便应用的各种产品的开发应用。

确实很好的一款!


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表