110VCGQ/project/daqidianchang/Core/Src/user_main.c
2024-11-18 10:09:39 +08:00

88 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* user_main.c
*
* Created on: 2023年8月3日
* Author: wyf
*/
/*
* user_main.c
*
* Created on: 2023年6月25日
* Author: wyf
*/
#include "user.h"
void user_main(void)
{
user_init();
RS485ADDR = *(uint16_t*)FLASH485_ADDR; //获取从机地址
if(RS485ADDR == 0x0000 || RS485ADDR == 0xFFFF)
{
RS485ADDR = 1;
}
pwm_pulse = *(uint16_t*)(FLASH485_ADDR+2); //获取脉宽
if(pwm_pulse == 0x0000 || pwm_pulse == 0xFFFF)
{
pwm_pulse = 1000;
}
__HAL_TIM_SET_COMPARE(&htim14,TIM_CHANNEL_1,pwm_pulse); //设置脉宽
HAL_TIM_Base_Start_IT(&htim14);
HAL_TIM_PWM_Start_IT(&htim14, TIM_CHANNEL_1); //开启PWM波输出
HAL_UART_DMAStop(&huart1);//复位DMA //串口DMA接收
HAL_UART_Receive_DMA(&huart1,(uint8_t *)RxBuff,sizeof(RxBuff));
HAL_GPIO_WritePin(TX485_PN_GPIO_Port, TX485_PN_Pin, GPIO_PIN_RESET);//使能485芯片接收
HAL_ADC_Start_DMA(&hadc, (uint32_t*)RegularConvData_Tab, ADCBUFF_LEN); //开启ADC转换
bsp_StartAutoTimer(0,15); //计算波形峰峰值
bsp_StartAutoTimer(1,500); //led1闪烁,
bsp_StartAutoTimer(4,1000); //未检测到电机信号
// bsp_StartAutoTimer(5,1000);
while(1)
{
if(bsp_CheckTimer(0))
{
HAL_ADC_Stop_DMA(&hadc);
ADC_MAX(); //计算波形峰峰
HAL_ADC_Start_DMA(&hadc, (uint32_t*)RegularConvData_Tab, ADCBUFF_LEN);
}
if(bsp_CheckTimer(1))
{
HAL_IWDG_Refresh(&hiwdg); //喂狗
// HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
}
if(bsp_CheckTimer(2)) //在外部中断回调函数中开启在定时器4中关闭
{
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
//每500ms加一次一小时7200次
}
if(bsp_CheckTimer(4))
{
bsp_StopTimer(2);
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
motor_state = 1; //不正常
}
if(usart_count >0)
{
Usart_Receive();
usart_count = 0;
}
}
}