• 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越亮,低电平在这个周期内占比多,达到调节电压的效果,就行稀释一样,需要低浓度还是高浓度,看比例调整,在微观角度调整,在宏观角度实现相同的效果。
     

  • 相关阅读:
    华为 2024 届实习校园招聘-硬件通⽤(大部分硬件技术工程师岗位适用)/单板开发——第四套
    Spread 16.X FOR WPF 中文版 我就喜欢 Spread.NET
    Leetcode:【169. 多数元素】
    docker 快速上手
    【单例模式和代理模式】
    WebRTC模块化设计思想之编解码
    5个免费全球DEM数据源-数字高程模型
    在公司学习日,学习了结构思考力
    基于C语言编程的职工工资管理系统项目的设计与开发
    【整理】HTTP相关版本对比
  • 原文地址:https://blog.csdn.net/snk85k1/article/details/136544643