• STM32day2


    1.思维导图

    个人暂时的学后感,不一定对,没什么东西,为做项目奔波中。。。
    1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。

    1. while (1)
    2. {
    3. /* USER CODE END WHILE */
    4. /* USER CODE BEGIN 3 */
    5. adc_val = HAL_ADC_GetValue(&hadc);
    6. if(adc_val<3300&&flag==0)
    7. {
    8. flag=1;
    9. for(i=500;i>0;i--)
    10. {
    11. TIM3->CCR3 = i;
    12. HAL_Delay(1);
    13. }
    14. }
    15. if(adc_val>3800&&flag==1)
    16. {
    17. flag=0;
    18. for(i=0;i<=500;i++)
    19. {
    20. TIM3->CCR3 = i;
    21. HAL_Delay(1);
    22. }
    23. }
    24. HAL_Delay(1000);
    25. }
    26. /* USER CODE END 3 */

    2.总结DMA+空闲中断接收数据的使用方法
    原理是原本有cpu处理的数据交由DMA处理,
    DMA接收时,一包数据接收完毕,会有一段空闲时间,例如传输一个字节所需的时间,就能把这包数据处理完,例如,通过串口发回电脑端。
    DMA跟定时器有些相似,定时器是超时时间超时时,执行任务;
    DMA是事件到了,比如一包数据输出完后,存在一个字节没有接收数据的时间,在这段时间内执行事件。
    都有回调函数,执行原因不同,
    DMA与CPU发送数据的区别,DMA的事件触发是接收完毕数据包后执行,CPU的事件触发是接收到单个字符时执行。
    处理的数据长度不同。

    1.DMA的作用(DMA+空闲中断接收数据)
    DMA代替cpu检测并接收数据,接收完数据后会产生空闲中断,利用空闲中断对接收到的数据进行处理。
    2.串口重定向(如何实现串口重定向)
    在usart.c文件中在最底行重新定义串口fputc函数
    例如:
    int fputc(int ch,FILE* f)
    {
        HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,1000);
        return 0;
    }
    3.串口的数据接收
    串口数据接收有两种方法,完成中断回调函数,完成空闲中断回调函数。
    前者用于处理已知长度的数据包
    后者用于处理数据量大或长度不确定的情况

    4.ADC采样(分辨率,采样时间)
    ADC全称是模拟数字转换器,分辨率是采样的精度,采样时间就是字面意思,采一次样本需要的时长,在STM32里面最长采样时间是239.5Cycles,根据需求选择采样时间。
    5.PWM(占空比,ARR,CNT和CCRX的关系)(如何去调整占空比)
    PWM是调波,占空比是高电平占整个周期的时间/总-电平时间
    PWM是脉宽调制的缩写,是一种通过控制信号的脉冲宽度来产生模拟效果的技术,PWM信号是一系列周期性的脉冲组成,每个脉冲的宽度可以调整,从而改变其平均功率或能量。
    ARR是重装载值,CNT是计数值(预分频系数),CCRX是设置的阈值,也就是比较寄存器,高于CCRX端为高电平,低于为低电平,因为lED灯是低电平点亮,所以这里CCRX数值越大LED越亮,低电平在这个周期内占比多,达到调节电压的效果,就行稀释一样,需要低浓度还是高浓度,看比例调整,在微观角度调整,在宏观角度实现相同的效果。
     

  • 相关阅读:
    jmeter添加断言(详细图解)
    亲测解决no module named ‘PyQt5.QtCore‘
    【Unity】URP渲染管线下代码获取相机的Volume Mask属性
    Codeforces Round #820 (Div. 3)
    《猎杀:对决》是适合什么样的人玩 Mac电脑怎么玩《猎杀:对决》
    SSH远程登录协议
    k8s配置deployment解读
    CSDN21天学习挑战赛 - 第四篇打卡文章
    [暑假]Vue生命周期-笔记
    if-else:if判断语句和执行语句之间相差1个时钟周期吗?并行执行吗?有优先级吗?
  • 原文地址:https://blog.csdn.net/snk85k1/article/details/136544643