Update E53_ST1.c

This commit is contained in:
David Lin
2021-01-14 20:22:03 +08:00
committed by GitHub
parent 2625ee72da
commit bcfe2161fe

View File

@@ -19,52 +19,52 @@ TIM_HandleTypeDef htim16;
/* TIM16 init function */ /* TIM16 init function */
void MX_TIM16_Init(void) void MX_TIM16_Init(void)
{ {
TIM_OC_InitTypeDef sConfigOC; TIM_OC_InitTypeDef sConfigOC;
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
htim16.Instance = TIM16; htim16.Instance = TIM16;
htim16.Init.Prescaler = 79; htim16.Init.Prescaler = 79;
htim16.Init.CounterMode = TIM_COUNTERMODE_UP; htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
htim16.Init.Period = 999; htim16.Init.Period = 999;
htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim16.Init.RepetitionCounter = 0; htim16.Init.RepetitionCounter = 0;
htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim16) != HAL_OK) if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
if (HAL_TIM_PWM_Init(&htim16) != HAL_OK) if (HAL_TIM_PWM_Init(&htim16) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 499; sConfigOC.Pulse = 499;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0; sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.BreakFilter = 0; sBreakDeadTimeConfig.BreakFilter = 0;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK) if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
HAL_TIM_MspPostInit(&htim16); HAL_TIM_MspPostInit(&htim16);
} }
/*************************************************************** /***************************************************************
@@ -76,16 +76,16 @@ void MX_TIM16_Init(void)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{ {
if(tim_baseHandle->Instance==TIM16) if(tim_baseHandle->Instance==TIM16)
{ {
/* USER CODE BEGIN TIM16_MspInit 0 */ /* USER CODE BEGIN TIM16_MspInit 0 */
/* USER CODE END TIM16_MspInit 0 */ /* USER CODE END TIM16_MspInit 0 */
/* TIM16 clock enable */ /* TIM16 clock enable */
__HAL_RCC_TIM16_CLK_ENABLE(); __HAL_RCC_TIM16_CLK_ENABLE();
/* USER CODE BEGIN TIM16_MspInit 1 */ /* USER CODE BEGIN TIM16_MspInit 1 */
/* USER CODE END TIM16_MspInit 1 */ /* USER CODE END TIM16_MspInit 1 */
} }
} }
@@ -98,26 +98,25 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{ {
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct;
if(timHandle->Instance==TIM16) if(timHandle->Instance==TIM16)
{ {
/* USER CODE BEGIN TIM16_MspPostInit 0 */ /* USER CODE BEGIN TIM16_MspPostInit 0 */
/* USER CODE END TIM16_MspPostInit 0 */ /* USER CODE END TIM16_MspPostInit 0 */
/**TIM16 GPIO Configuration /**TIM16 GPIO Configuration
PB8 ------> TIM16_CH1 PB8 ------> TIM16_CH1
*/ */
GPIO_InitStruct.Pin = ST1_Beep_Pin; GPIO_InitStruct.Pin = ST1_Beep_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF14_TIM16; GPIO_InitStruct.Alternate = GPIO_AF14_TIM16;
HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN TIM16_MspPostInit 1 */ /* USER CODE BEGIN TIM16_MspPostInit 1 */
/* USER CODE END TIM16_MspPostInit 1 */
/* USER CODE END TIM16_MspPostInit 1 */
} }
} }
@@ -130,20 +129,20 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
***************************************************************/ ***************************************************************/
void Init_Beep(void) void Init_Beep(void)
{ {
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
ST1_Beep_GPIO_CLK_ENABLE(); ST1_Beep_GPIO_CLK_ENABLE();
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(ST1_Beep_GPIO_Port, ST1_Beep_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(ST1_Beep_GPIO_Port, ST1_Beep_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ST1_Beep_Pin; GPIO_InitStruct.Pin = ST1_Beep_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct);
} }
/*************************************************************** /***************************************************************
@@ -154,20 +153,20 @@ void Init_Beep(void)
***************************************************************/ ***************************************************************/
void Init_LED(void) void Init_LED(void)
{ {
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
ST1_LED_GPIO_CLK_ENABLE(); ST1_LED_GPIO_CLK_ENABLE();
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, GPIO_PIN_SET);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ST1_LED_Pin; GPIO_InitStruct.Pin = ST1_LED_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(ST1_LED_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ST1_LED_GPIO_Port, &GPIO_InitStruct);
} }
/*************************************************************** /***************************************************************
* 函数名称: Init_GPS_POW * 函数名称: Init_GPS_POW
@@ -177,20 +176,20 @@ void Init_LED(void)
***************************************************************/ ***************************************************************/
void Init_GPS_POW(void) void Init_GPS_POW(void)
{ {
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
ST1_GPS_POW_GPIO_CLK_ENABLE(); ST1_GPS_POW_GPIO_CLK_ENABLE();
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(ST1_GPS_POW_GPIO_Port, ST1_GPS_POW_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(ST1_GPS_POW_GPIO_Port, ST1_GPS_POW_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ST1_GPS_POW_Pin; GPIO_InitStruct.Pin = ST1_GPS_POW_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(ST1_GPS_POW_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ST1_GPS_POW_GPIO_Port, &GPIO_InitStruct);
} }
/*************************************************************** /***************************************************************
* 函数名称: GPS_Init * 函数名称: GPS_Init
@@ -200,10 +199,10 @@ void Init_GPS_POW(void)
***************************************************************/ ***************************************************************/
void GPS_Init(void) void GPS_Init(void)
{ {
MX_USART3_UART_Init(); //初始化串口 MX_USART3_UART_Init(); //初始化串口
HAL_UART_Transmit(&huart3, "$CCMSG,GGA,1,0,*19\r\n", 20, 200); HAL_UART_Transmit(&huart3, "$CCMSG,GGA,1,0,*19\r\n", 20, 200);
HAL_UART_Transmit(&huart3, "$CCMSG,GSA,1,0,*0D\r\n", 20, 200); HAL_UART_Transmit(&huart3, "$CCMSG,GSA,1,0,*0D\r\n", 20, 200);
HAL_UART_Transmit(&huart3, "$CCMSG,GSV,1,0,*1A\r\n", 20, 200); HAL_UART_Transmit(&huart3, "$CCMSG,GSV,1,0,*1A\r\n", 20, 200);
} }
/*************************************************************** /***************************************************************
@@ -214,121 +213,121 @@ void GPS_Init(void)
***************************************************************/ ***************************************************************/
void Init_E53_ST1(void) void Init_E53_ST1(void)
{ {
GPS_Init(); GPS_Init();
Init_Beep(); Init_Beep();
Init_LED(); Init_LED();
Init_GPS_POW(); Init_GPS_POW();
MX_TIM16_Init(); MX_TIM16_Init();
} }
/***************************************************\ /***************************************************\
* 函数名称: NMEA_Comma_Pos * 函数名称: NMEA_Comma_Pos
* 函数功能从buf里面得到第cx个逗号所在的位置 * 函数功能从buf里面得到第cx个逗号所在的位置
* 输入值: * 输入值:
* 返回值0~0xFE代表逗号所在位置的便宜 * 返回值0~0xFE代表逗号所在位置偏移
* 0xFF代表不存在第cx个逗号 * 0xFF代表不存在第cx个逗号
\***************************************************/ \***************************************************/
uint8_t NMEA_Comma_Pos(uint8_t *buf,uint8_t cx) uint8_t NMEA_Comma_Pos(uint8_t *buf,uint8_t cx)
{ {
uint8_t *p = buf; uint8_t *p = buf;
while(cx) while(cx)
{ {
if(*buf=='*'||*buf<' '||*buf>'z')return 0xFF; if(*buf=='*'||*buf<' '||*buf>'z')return 0xFF;
if(*buf==',')cx--; if(*buf==',')cx--;
buf++; buf++;
} }
return buf-p; return buf-p;
} }
/***************************************************\ /***************************************************\
* 函数名称: NMEA_Pow * 函数名称: NMEA_Pow
* 函数功能返回m的n次方值 * 函数功能返回m的n次方值
* 输入值底数m和指数n * 输入值底数m和指数n
* 返回值m^n * 返回值m^n
\***************************************************/ \***************************************************/
uint32_t NMEA_Pow(uint8_t m,uint8_t n) uint32_t NMEA_Pow(uint8_t m,uint8_t n)
{ {
uint32_t result = 1; uint32_t result = 1;
while(n--)result *= m; while(n--)result *= m;
return result; return result;
} }
/***************************************************\ /***************************************************\
* 函数名称: NMEA_Str2num * 函数名称: NMEA_Str2num
* 函数功能str数字转换为int数字以','或者'*'结束 * 函数功能str数字转换为int数字以','或者'*'结束
* 输入值buf数字存储区 * 输入值buf数字存储区
* dx小数点位数返回给调用函数 * dx小数点位数返回给调用函数
* 返回值:转换后的数值 * 返回值:转换后的数值
\***************************************************/ \***************************************************/
int NMEA_Str2num(uint8_t *buf,uint8_t*dx) int NMEA_Str2num(uint8_t *buf,uint8_t*dx)
{ {
uint8_t *p = buf; uint8_t *p = buf;
uint32_t ires = 0,fres = 0; uint32_t ires = 0,fres = 0;
uint8_t ilen = 0,flen = 0,i; uint8_t ilen = 0,flen = 0,i;
uint8_t mask = 0; uint8_t mask = 0;
int res; int res;
while(1) while(1)
{
if(*p=='-'){mask |= 0x02;p++;}//说明有负数
if(*p==','||*p=='*')break;//遇到结束符
if(*p=='.'){mask |= 0x01;p++;}//遇到小数点
else if(*p>'9'||(*p<'0'))//数字不在0和9之内说明有非法字符
{ {
if(*p=='-'){mask |= 0x02;p++;}//说明有负数 ilen = 0;
if(*p==','||*p=='*')break;//遇到结束符 flen = 0;
if(*p=='.'){mask |= 0x01;p++;}//遇到小数点 break;
else if(*p>'9'||(*p<'0'))//数字不在0和9之内说明有非法字符
{
ilen = 0;
flen = 0;
break;
}
if(mask&0x01)flen++;//小数点的位数
else ilen++;//str长度加一
p++;//下一个字符
} }
if(mask&0x02)buf++;//移到下一位,除去负号 if(mask&0x01)flen++;//小数点的位数
for(i=0;i<ilen;i++)//得到整数部分数据 else ilen++;//str长度加一
{ p++;//下一个字符
ires += NMEA_Pow(10,ilen-1-i)*(buf[i]-'0'); }
} if(mask&0x02)buf++;//移到下一位,除去负号
if(flen>5)flen=5;//最多取五位小数 for(i=0;i<ilen;i++)//得到整数部分数据
*dx = flen; {
for(i=0;i<flen;i++)//得到小数部分数据 ires += NMEA_Pow(10,ilen-1-i)*(buf[i]-'0');
{ }
fres +=NMEA_Pow(10,flen-1-i)*(buf[ilen+1+i]-'0'); if(flen>5)flen=5;//最多取五位小数
} *dx = flen;
res = ires*NMEA_Pow(10,flen)+fres; for(i=0;i<flen;i++)//得到小数部分数据
if(mask&0x02)res = -res; {
return res; fres +=NMEA_Pow(10,flen-1-i)*(buf[ilen+1+i]-'0');
}
res = ires*NMEA_Pow(10,flen)+fres;
if(mask&0x02)res = -res;
return res;
} }
/***************************************************\ /***************************************************\
* 函数名称: NMEA_BDS_GPRMC_Analysis * 函数名称: NMEA_BDS_GPRMC_Analysis
* 函数功能解析GPRMC信息 * 函数功能解析GPRMC信息
* 输入值gpsx,NMEA信息结构体 * 输入值gpsx,NMEA信息结构体
* buf接收到的GPS数据缓冲区首地址 * buf接收到的GPS数据缓冲区首地址
\***************************************************/ \***************************************************/
void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf) void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf)
{ {
uint8_t *p4,dx; uint8_t *p4,dx;
uint8_t posx; uint8_t posx;
uint32_t temp; uint32_t temp;
float rs; float rs;
p4=(uint8_t*)strstr((const char *)buf,"$GPRMC");//"$GPRMC",经常有&和GPRMC分开的情况,故只判断GPRMC. p4=(uint8_t*)strstr((const char *)buf,"$GPRMC"); //"$GPRMC",经常有&和GPRMC分开的情况,故只判断GPRMC.
posx=NMEA_Comma_Pos(p4,3); //得到纬度 posx=NMEA_Comma_Pos(p4,3); //得到纬度
if(posx!=0XFF) if(posx!=0XFF)
{ {
temp=NMEA_Str2num(p4+posx,&dx); temp=NMEA_Str2num(p4+posx,&dx);
gpsmsg->latitude_bd=temp/NMEA_Pow(10,dx+2); //得到° gpsmsg->latitude_bd=temp/NMEA_Pow(10,dx+2); //得到°
rs=temp%NMEA_Pow(10,dx+2); //得到' rs=temp%NMEA_Pow(10,dx+2); //得到'
gpsmsg->latitude_bd=gpsmsg->latitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//转换为° gpsmsg->latitude_bd=gpsmsg->latitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//转换为°
} }
posx=NMEA_Comma_Pos(p4,4); //南纬还是北纬 posx=NMEA_Comma_Pos(p4,4); //南纬还是北纬
if(posx!=0XFF)gpsmsg->nshemi_bd=*(p4+posx); if(posx!=0XFF)gpsmsg->nshemi_bd=*(p4+posx);
posx=NMEA_Comma_Pos(p4,5); //得到经度 posx=NMEA_Comma_Pos(p4,5); //得到经度
if(posx!=0XFF) if(posx!=0XFF)
{ {
temp=NMEA_Str2num(p4+posx,&dx); temp=NMEA_Str2num(p4+posx,&dx);
gpsmsg->longitude_bd=temp/NMEA_Pow(10,dx+2); //得到° gpsmsg->longitude_bd=temp/NMEA_Pow(10,dx+2); //得到°
rs=temp%NMEA_Pow(10,dx+2); //得到' rs=temp%NMEA_Pow(10,dx+2); //得到'
gpsmsg->longitude_bd=gpsmsg->longitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//转换为° gpsmsg->longitude_bd=gpsmsg->longitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60; //转换为°
} }
posx=NMEA_Comma_Pos(p4,6); //东经还是西经 posx=NMEA_Comma_Pos(p4,6); //东经还是西经
if(posx!=0XFF)gpsmsg->ewhemi_bd=*(p4+posx); if(posx!=0XFF)gpsmsg->ewhemi_bd=*(p4+posx);
} }
/*************************************************************** /***************************************************************
@@ -339,39 +338,38 @@ void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf)
***************************************************************/ ***************************************************************/
void E53_ST1_Read_Data(void) void E53_ST1_Read_Data(void)
{ {
HAL_UART_Receive_IT(&huart3,gps_uart,1000); HAL_UART_Receive_IT(&huart3,gps_uart,1000);
NMEA_BDS_GPRMC_Analysis(&gpsmsg,(uint8_t*)gps_uart); //分析字符串 NMEA_BDS_GPRMC_Analysis(&gpsmsg,(uint8_t*)gps_uart); //分析字符串
E53_ST1_Data.Longitude=(float)((float)gpsmsg.longitude_bd/100000); E53_ST1_Data.Longitude=(float)((float)gpsmsg.longitude_bd/100000);
E53_ST1_Data.Latitude=(float)((float)gpsmsg.latitude_bd/100000); E53_ST1_Data.Latitude=(float)((float)gpsmsg.latitude_bd/100000);
} }
/*************************************************************** /***************************************************************
* 函数名称: E53SF1_LED_StatusSet * 函数名称: E53_ST1_LED_StatusSet
* 说 明: E53SF1开发板上的LED灯的亮灭控制 * 说 明: E53 ST1开发板上的LED灯的亮灭控制
* 参 数: status,LED灯的状态 * 参 数: status,LED灯的状态
* 非1,关灯 * 非1,关灯
* 1,开灯 * 1,开灯
* 返 回 值: 无 * 返 回 值: 无
***************************************************************/ ***************************************************************/
void E53_ST1_LED_StatusSet(E53ST1_Status_ENUM status) void E53_ST1_LED_StatusSet(E53ST1_Status_ENUM status)
{ {
HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, status != ST1_ON ? GPIO_PIN_RESET : GPIO_PIN_SET ); HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, status != ST1_ON ? GPIO_PIN_RESET : GPIO_PIN_SET );
} }
/*************************************************************** /***************************************************************
* 函数名称: E53SF1_BEEP * 函数名称: E53_ST1_Beep
* 说 明: E53SF1蜂鸣器报警与否 * 说 明: E53 ST1蜂鸣器报警与否
* 参 数: status,LED_ENUM枚举的数据 * 参 数: status,LED_ENUM枚举的数据
* LED_OFF,关灯 * LED_OFF,关灯
* LED_ON,开灯 * LED_ON,开灯
* 返 回 值: 无 * 返 回 值: 无
***************************************************************/ ***************************************************************/
void E53_ST1_Beep(E53ST1_Status_ENUM status) void E53_ST1_Beep(E53ST1_Status_ENUM status)
{ {
if(status == ST1_ON) if(status == ST1_ON)
HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
if(status == ST1_OFF) if(status == ST1_OFF)
HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1);
} }