基于STM32的医用控温毯控制系统的设计-源代码

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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配置*/

相关文档
最新文档