ST 3合一开发板stm8学习之 led

发布者:本人在最新更新时间:2020-08-19 来源: eefocus关键字:ST  3合一开发板  stm8  led 手机看文章 扫描二维码
随时随地手机看文章

ST  3合一开发板stm8学习之 led
 
这个例程使用了adc tim 和 gpio三种外设,程序功能是 根据adc输入的模拟量改变led
灯闪烁的频率和灯的亮度。


配置过程:

Adc相关程序:
     void ADC_Init(void)
{
    ADC_CR2  = 0x00;  配置寄存器2 配置外部触发是否使能 选择外部触发方式 数据对齐位  扫描模式是否使能位  这里配置为禁止外部触发 转换数据左对齐  禁止扫描模式?
    ADC_CR1  = 0x00;  配置寄存器1 配置预分频位 转换模式是单词还是连续 ad转换开关。这里配置为fadc=fmaster/2,单次转换,禁止adc
    ADC_CSR  = 0x03; 控制状态寄存器:配置各种中断使能 转换完成标志和转换通道。这里配置了 禁止各种中断 选择通道3 pb3
       ADC_TDRL = 0x20; ADC_TDRH和ADC_TDRL寄存器可以用来禁止 AIN 模拟输入引脚中的施密特触发器工作。禁止施密特触发器工作可以降低I/O引脚的功耗。


还有很多寄存器 具体用到可以看相关说明
}

Gpio相关  

 void GPIO_Init(void) 
{
    /* LED IO Configuration        */
    /* LD3: PD3             */    请看gpio 讲解部分
    /* LD2: PD1             */
    /* LD1: PD0             */
    PD_DDR |= 0x0D;              /*      前面            */
    PD_CR1 |= 0x0D;              /*          已经      */
    PD_CR2  = 0x00;              /* */    讲过

    /* 外部中断pd7 */
    EXTI_CR1  = 0x00;           配置 触发方式 这里配置为下降沿和低电平触发      
    EXTI_CR2  = 0x00;           中断触发方式 下降沿和低电平触发
    PD_DDR   &=~0x80;          pd7输入模式
    PD_CR2   |= 0x80;            使能pd7外部中断
}

Tim相关:

 void TIM_Init(void)
{
    /* TIM2 CC2控制亮度 */
    TIM2_CCMR2 |= 0x70;         配置为pwm2模式,PWM模式2- 在向上计数时,一旦TIMx_CNTTIMx_CCR2时通道2为有效电平,否则为无效电平。
     TIM2_CCER1 |= 0x30;         /*选择通道2  输出低电平 有效    */
    TIM2_ARRH   = 0x00;
    TIM2_ARRL   = 0xff;        /* 配置重装载数值       ARRH默认值是ff      */
    TIM2_CCR2   = 0x00;        /* 输出比较2的值  用来和cnt比较 这
里开始为零  输出到引脚的电平是零
(有效电平) pwm2模式        */

    TIM2_PSCR   = 0x00;          /*预分频器的值  值+1            */ 
    TIM2_CR1   |= 0x01;           使能计数  cr1最高位使能预装载功能
此处禁止
以上配置了 tim2 通道2为pwm2模式 (在向上计数时,一旦TIMx_CNTTIMx_CCR2时通道2为有效电平,否则为无效电平。) 
  并配置了重装载数值和预分频值,开启计数。关于计数模式  应该只有向上计数模式。

下面是配置tim3  通道1  
                    */
 /* TIM3 CC1 控制闪烁*/
    TIM3_CCMR1 |= 0x78;      配置为 pwm2模式  开启预装载功能
    TIM3_CCER1 |= 0x03;           /* 选择通道1      */
    TIM3_ARRH   = 0x03;
    TIM3_ARRL   = 0xff;          
    TIM3_CCR1H  = 0x02;              
TIM3_CCR1L  = 0x00;

    TIM3_PSCR  |= 0x0d;             
TIM3_CR1   |= 0x81;

}

配置tim3和 tim2一样 不再多说。
定时器 用得最多的就是定时和产生不同的波形,基本的定时 我们就可以直接设成计数模式就ok了。输出比较和pwm如初一折

以上设置开启输出捕获功能并打开相应通道,设置低电平为有效电平
void ADC_Init(void)
{
    ADC_CR2  = 0x00;
    ADC_CR1  = 0x00;
    ADC_CSR  = 0x03; 选择模拟通道3输入
    ADC_TDRL = 0x20; 关闭相应管教施密特触发器
}
设置adc位  单次转换 转换数据左对齐存储。选择模拟通道3输入,关闭相应管教施密特触发器(整波的),



Ok  以上配置了led的gpio端口以及外部触发中断的端口,定时器两个比较输出。和adc单次转换输入。看一下主程序:
 void LED_Control(unsigned char duration)
{
    int i = 0;
    unsigned char uc = 0;
    unsigned long Temp;

    ADC_CR1 |= 0x01;      
     i = 6;           
    while(i--); 
    ADC_CR1 |= 0x01;        
    while(!(ADC_CSR & 0x80));/* Waiting for AD convert finished (EOP=1). 
     
开启adc需要给ADON两次赋值,第一次开启adc的供电,等到电源稳定,则再赋值,开始转换
    /* Store ADC value to AD_Value */
    AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL);

    /* The new duty cycle value is written in CCR. */
    TIM2_CCR2H=0x00;
    TIM2_CCR2L=(unsigned char)(AD_Value>>2);
 根据adc的值改变比较寄存器的值,因为tim2 用来改变亮度 所以低电平时间要短

    if (AD_Value>0x10)
    {
      Temp=(unsigned char)(AD_Value>>8);

      if ((TIM3_ARRH>Temp+0x05)||(TIM3_ARRH      {
        TIM3_ARRH  = Temp;
        TIM3_ARRL  = (unsigned char)(AD_Value&0xff);
        TIM3_CCR1H = (unsigned char)(AD_Value>>9);
        TIM3_CCR1L = (unsigned char)((AD_Value>>1)&0xff);
      }
}

当转换值大于0x10时,灯闪烁  并一直变化。
    /* Delay time = duration * Y */
    while ( uc < duration )  /* The following loop is run "duration" times. */
    {
      while ( i < 1200 )     /* This loop "Y" waits approximately 4.3ms.      */
      {
        i++;
      }
      i = 0;
      uc++;
    }
上面是延时函数
}

Ok 关于led例程  到此为止

关键字:ST  3合一开发板  stm8  led 引用地址:ST 3合一开发板stm8学习之 led

上一篇:3合一套件 stm8 学习笔记之css
下一篇:stm8s的assert_param()的说明

推荐阅读最新更新时间:2024-11-09 10:53

LED的结构、特点及应用
LED的结构、特点及应用   50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。LED是英文light emitting diode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。   发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过渡层,称为p-n结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致
[嵌入式]
浅析LED车载显示面板传导模型和影响散热效果进行计算校验测试数据和ANSYS软件
随着LED生产工艺的不断发展,车载手机及其他显示需要亮度越来越高,散热也就成了不得不面临的棘手问题。本文首先阐述了温度上升对LED性能的影响,研究影响散热效果的主要因素,并结合车载显示等特点,提出了一种车载显示热学分析等效模型。然后针对目前车载显示主要采用的被动式散热方式,通过对车载模型进行热学测试计算以及ANSYS软件仿真,最后通过对测试模拟结果的系统分析,给出参考结论,为改善当前LED高亮度显示的散热设计提出了指导性意见。 面板行业对我们来说已不再陌生,在生活中随处可见,大到户外显示屏小到手机Pad这样的终端都有,而且随着技术进步车载显示出货量占了更大比例。LED作为新型高效节能光源,进入显示领域已日趋成熟。并且对于高亮度
[嵌入式]
浅析<font color='red'>LED</font>车载显示面板传导模型和影响散热效果进行计算校验测试数据和ANSYS软件
意法半导体生物感测创新技术赋能下一代智能穿戴个人医疗健身设备
高集成度生物传感器芯片整合心电监测和神经感测信号输入通道与运动跟踪和嵌入式AI核心 新产品在11月12日至15日慕尼黑举行的慕尼黑电子展2024上展出 2024年11月6日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;) 推出了一款新的面向智能手表、运动手环、智能戒指、智能眼镜等下一代智能穿戴医疗设备的生物传感器芯片。S T1VAFE3BX芯片集成高精度生物电位输入与意法半导体的经过市场检验的惯性传感器和AI核心 。其中,AI核心在芯片上执行活动检测,确保运动跟踪更快,功耗更低。 意法半导体APMS产品部副总裁、MEMS子产品部总经理Simo
[医疗电子]
<font color='red'>意法半导体</font>生物感测创新技术赋能下一代智能穿戴个人医疗健身设备
LED灯具综合性能评估体系
近年来,LED行业飞速发展,但随着快速发展的进程,行业内也呈现出鱼龙混杂的现状。以室内照明产品为例,目前大多数厂家过于重视成本的压缩,而忽略了产品的品质,低端产品在灯具的效率、寿命及光的品质任何一个方面,甚至与中等品质的传统节能灯相比都没有任何优势可言,实在体现不出LED任何的技术优势与价值。随着LED的普及与推广,越来越多的人都认识到使用低品质的LED灯具,还不如沿用传统的节能灯实惠。例如,市场上大量低品质的LED灯具与国内雷士、欧普等品牌的节能灯相比不仅价格没有优势,而且寿命和效率还比不上这些节能灯,存在的价值非常小! 若上述问题得不到正确的认识与调整,放任低端LED产品大肆流入市场,中国将成为世界上LED第一垃圾制造大国
[嵌入式]
<font color='red'>LED</font>灯具综合性能评估体系
51单片机学习笔记———1.自定义延时函数点亮并控制LED的闪烁秒数以及用Proteus仿真
#include reg52.h #define LED P0 void delay();//延时一秒 void main() //按位操作点亮小灯 { unsigned int i; while(1) { for(i = 0;i 8;i++) { LED = ~(0X01 i);//之所以要取反,因为这样的十六进是制数比较小,比较直观 delay(); } } } void delay() //延时一秒 { unsigned int i,j; for(i = 0;i 83;i++) { for(j = 0;j 1000;j++) { ;
[单片机]
51单片机学习笔记———1.自定义延时函数点亮并控制<font color='red'>LED</font>的闪烁秒数以及用Proteus仿真
意法半导体公布2024年第一季度财报
第一季度净营收34.7亿美元;毛利率41.7%;营业利润率15.9%,净利润5.13亿美元 扣除9.67亿美元净资本支出后,第一季度自由现金流 (1.34) 亿美元 业务展望 (中位数): 第二季度净营收32亿美元;毛利率40% 2024年4月26日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST;) 公布了按照美国通用会计准则 (U.S. GAAP) 编制的截至2024年3月30日的第一季度财报。 此外,本新闻稿还包含非美国通用会计准则指标数据(详情参阅附录)。 意法半导体第一季度实现净营收34.7亿美元,毛利率41.7%,营业利润率15.9
[半导体设计/制造]
<font color='red'>意法半导体</font>公布2024年第一季度财报
STM8烧录及程序运行
STM8S 编程软件工具:IAR工具 STM8S烧录软件工具:ST Visual Programmer STM8S烧录工具:STM8编程器 STM8S烧写接口:SWIM,RESET,VCC,GND 注意运行程序时,记得把RESET给拔了,不然可能出现问题 STM8S通用DEMO:找技小新demo ,
[单片机]
<font color='red'>STM8</font>烧录及程序运行
STM32简单的LED流水灯程序
//0x4002 1000 - 0x4002 13FF 复位和时钟控制(RCC) #define RCC_BASE 0x40021000 #define RCC_APB2ENR (RCC_BASE+0x18) //LED接在GPIOF上,是APB2上的外设,是RCC_APB2ENR寄存器的第7位 //APB20x4001 1c00 GPIO端口F #define GPIOF_BASE 0x40011c00 #define GPIOF_CHL (0x000+GPIOF_BASE) #define GPIOF_CHR (0x004+GPIOF_BASE) #defin
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved