模版配置出现问题剖析

RTC

安装第十五届软件之后

系统配置时钟不在是写在模块代码而是写在了主函数里边,重新配置之后需要进入主函数修改时钟

然后就是固定使用binary模式避免出现一些其他的问题

  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};  

  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
                              |RCC_PERIPHCLK_ADC12;
  PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
  PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_PLL;
  PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV32;

ADC

1.错误分析

使用采集函数式应该在主函数使其运行,不然无法获得数据

  while (1)
  {
	collect_proc();
	led_proc();
	key_proc();
	lcd_proc();
	uart_proc();
  }

2.校准分析

	HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
	HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);

3.adc中值滤波算法

uint8_t adc_num;
float sum_adc;
float average_adc;

///adc中值滤波算法
for(adc_num = 0;adc_num<=9;adc_num++)
{
    sum_adc = ((float)getadc1();
}
sum_adc /= 4096;
sum_adc *= 3.3;
average_adc = sun_adc/10;//经过中值滤波得到的adc的值
sum_adc = 0;//将值取出之后应该立即置零,否则下次累加会在此基础上累加
UART

延时就是进入串口发送间隔时间

TIM

1.Pwm输出比较

//
	HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);//PA6 1000Hz占空比百分之四十的PWM波形
	HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);//PA7  200 Hz 占空比百分之十
//修改相应频率
	__HAL_TIM_SET_AUTORELOAD(&htim17, 999);//PA7(黄色)修改评率为一千赫兹
//修改相应的占空比
	__HAL_TIM_SET_COMPARE(&htim16,TIM_CHANNEL_1,500);//修改PA6占空比为百分之五十
	__HAL_TIM_SET_COMPARE(&htim17,TIM_CHANNEL_1,600);//修改占空比为百分之六十

短按,长按按键

	ucKey_Val = Key_Scan();
	unKey_Down = ucKey_Val & (ucKey_Old ^ ucKey_Val); //下降
	ucKey_Up = ~ucKey_Val & (ucKey_Old ^ ucKey_Val);	
	ucKey_Old = ucKey_Val;


__IO uint32_t uwTick_key_duang_chang = 0;//定义打点值


    if(uckye_down)//检测有按键按下,开启计时
{
    uwTick_key_duang_chang = uwTick;
}

if((uwTick - uwTick_key_duang_chang) < 800)//小于八百毫秒判定为短按
{
    switch(uckey_up)
        {
            case 1://如果B1短按
                ucled = 0x88;//点亮led
            break;
        }
}
else
{
    switch(uckey_value)
        {
            case 1://如果B1长按
                ucled = 0x00;//熄灭led灯
            break;
        }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值