基于STM32的医用控温毯控制系统的设计-源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void LED_GPIO_Init(void)
{
/* 定义IO硬件初始化结构体变量*/
GPIO_InitTypeDef GPIO_InitStruct;
/* 使能(开启)LED引脚对应IO端口时钟*/
LED1_RCC_CLK_ENABLE();
LED2_RCC_CLK_ENABLE();
/* 配置LED1引脚输出电压*/
HAL_GPIO_WritePin(LED1_GPIO, LED1_GPIO_PIN, GPIO_PIN_RESET);
/* 配置LED2引脚输出电压*/
HAL_GPIO_WritePin(LED2_GPIO, LED2_GPIO_PIN, GPIO_PIN_RESET);
/* 设定LED1对应引脚IO编号*/
GPIO_InitStruct.Pin = LED1_GPIO_PIN;
/* 设定LED1对应引脚IO为输出模式*/
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/* 设定LED1对应引脚IO操作速度*/
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
/* 初始化LED1对应引脚IO */
HAL_GPIO_Init(LED1_GPIO, &GPIO_InitStruct);
/* 设定LED2对应引脚IO编号*/
GPIO_InitStruct.Pin = LED2_GPIO_PIN;
/* 设定LED2对应引脚IO为输出模式*/
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/* 设定LED2对应引脚IO操作速度*/
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
/* 初始化LED2对应引脚IO */
HAL_GPIO_Init(LED2_GPIO, &GPIO_InitStruct);
}
/**
* 函数功能: 设置板载LED灯的状态
* 输入参数: LEDx:其中x可甚至为(1,2,3)用来选择对应的LED灯
* 输入参数:state:设置LED灯的输出状态。
* 可选值:LED_OFF:LED灯灭;
* LED_ON:LED灯亮。
* LED_TOGGLE:反转LED
* 返回值: 无
* 说明:该函数使用类似标准库函数的编程方法,方便理解标准库函数编程思想。*/
void LEDx_StateSet(uint8_t LEDx,LEDState_TypeDef state)
{
/* 检查输入参数是否合法*/
assert_param(IS_LED_TYPEDEF(LEDx));
assert_param(IS_LED_STATE(state));
/* 判断设置的LED灯状态,如果设置为LED灯灭*/
if(state==LED_OFF)
{
if(LEDx & LED1)
LED1_OFF;/* LED1灭*/
if(LEDx & LED2)
LED2_OFF;/* LED2灭*/
}
else if(state==LED_ON) /* 设置LED灯为亮*/
{
if(LEDx & LED1)
LED1_ON;/* LED1亮*/
if(LEDx & LED2)
LED2_ON;/* LED2亮*/
}
else
{
if(LEDx & LED1)
LED1_TOGGLE;/* 设置引脚输出反转*/
if(LEDx & LED2)
LED2_TOGGLE;/* 设置引脚输出反转*/
}
}
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct;
if(huart->Instance==DEBUG_USARTx)
{
/* 串口外设时钟使能*/
DEBUG_USART_RCC_CLK_ENABLE();
/* 串口外设功能GPIO配置*/
GPIO_InitStruct.Pin = DEBUG_USARTx_Tx_GPIO_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(DEBUG_USARTx_Tx_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.Pin = DEBUG_USARTx_Rx_GPIO_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(DEBUG_USARTx_Rx_GPIO, &GPIO_InitStruct); }
}
/**
* 函数功能: 串口硬件反初始化配置
* 输入参数: huart:串口句柄类型指针
* 返回值: 无
* 说明: 该函数被HAL库内部调用
*/
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{
if(huart->Instance==DEBUG_USARTx)
{
/* 串口外设时钟禁用*/
DEBUG_USART_RCC_CLK_DISABLE();
/* 串口外设功能GPIO配置*/