88 lines
1.9 KiB
C
88 lines
1.9 KiB
C
|
/*
|
|||
|
* 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;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|