目录

一、程序功能说明

二、基本参数

1、参数

2、模块引脚说明

三、PWM驱动说明

时序:

代码:

STC89C52RC

STM32F103C8T6

四、部分代码说明

接线说明

1.1、STC89C52RC+RGB模块

1.2、STM32F103C8T6+RGB模块

五、相关资料链接

六、视频效果展示与程序资料获取

七、项目所有材料清单

八、注意事项

九、接线表格


一、程序功能说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

RGB模块

1、RGB模块彩灯渐变

STM32F103C8T6

1、晶振8M

2、系统时钟72M

RGB模块

二、基本参数

1、参数

2、模块引脚说明

RGB模块引脚

引脚说明

GND

GND引脚接开发板GND

R

红灯引脚 高电平亮 单片机引脚电流不够建议上拉

G

绿灯引脚 高电平亮 单片机引脚电流不够建议上拉

B

蓝灯引脚 高电平亮 单片机引脚电流不够建议上拉

三、PWM驱动说明

时序:

PWM信号占空比0-100% 周期可根据需要调整

代码:

STC89C52RC

用定时器产生3路PWM信号

void tim0() interrupt 1
{TL0 = 0xD2;       //设置定时初始值TH0 = 0xFF;       //设置定时初始值times++;if(times<=Duty_R){Pwm_R=1;}else{Pwm_R=0;} if(times<=Duty_G){Pwm_G=1;}else{Pwm_G=0;} if(times<=Duty_B){Pwm_B=1;}else{Pwm_B=0;} }

STM32F103C8T6

使用硬件PWM信号发生 4路PWM输出可选任意三路

/* ----------------   PWM信号 周期和占空比的计算--------------- */
// ARR :自动重装载寄存器的值
// CLK_cnt:计数器的时钟,等于 Fck_int / (psc+1) = 72M/(psc+1)
// PWM 信号的周期 T = ARR * (1/CLK_cnt) = ARR*(PSC+1) / 72M
// 占空比P=CCR/(ARR+1)static void GENERAL_TIM_Mode_Config(void)
{// 开启定时器时钟,即内部时钟CK_INT=72MGENERAL_TIM_APBxClock_FUN(GENERAL_TIM_CLK,ENABLE);/*--------------------时基结构体初始化-------------------------*/// 配置周期,这里配置为100KTIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;// 自动重装载寄存器的值,累计TIM_Period+1个频率后产生一个更新或者中断TIM_TimeBaseStructure.TIM_Period=GENERAL_TIM_Period;   // 驱动CNT计数器的时钟 = Fck_int/(psc+1)TIM_TimeBaseStructure.TIM_Prescaler= GENERAL_TIM_Prescaler;  // 时钟分频因子 ,配置死区时间时需要用到TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;     // 计数器计数模式,设置为向上计数TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;     // 重复计数器的值,没用到不用管TIM_TimeBaseStructure.TIM_RepetitionCounter=0; // 初始化定时器TIM_TimeBaseInit(GENERAL_TIM, &TIM_TimeBaseStructure);/*--------------------输出比较结构体初始化-------------------*/    // 占空比配置uint16_t CCR1_Val = 0;uint16_t CCR2_Val = 0;uint16_t CCR3_Val = 0;uint16_t CCR4_Val = 0;TIM_OCInitTypeDef  TIM_OCInitStructure;// 配置为PWM模式1TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;// 输出使能TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;// 输出通道电平极性配置 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;// 输出比较通道 1TIM_OCInitStructure.TIM_Pulse = CCR1_Val;TIM_OC1Init(GENERAL_TIM, &TIM_OCInitStructure);TIM_OC1PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);// 输出比较通道 2TIM_OCInitStructure.TIM_Pulse = CCR2_Val;TIM_OC2Init(GENERAL_TIM, &TIM_OCInitStructure);TIM_OC2PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);// 输出比较通道 3TIM_OCInitStructure.TIM_Pulse = CCR3_Val;TIM_OC3Init(GENERAL_TIM, &TIM_OCInitStructure);TIM_OC3PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);// 输出比较通道 4TIM_OCInitStructure.TIM_Pulse = CCR4_Val;TIM_OC4Init(GENERAL_TIM, &TIM_OCInitStructure);TIM_OC4PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);// 使能计数器TIM_Cmd(GENERAL_TIM, ENABLE);
}

四、部分代码说明

接线说明

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+RGB模块

sbit Pwm_R=P1^0;
sbit Pwm_G=P1^1;
sbit Pwm_B=P1^2;

1.2、STM32F103C8T6+RGB模块

/************通用定时器TIM参数定义,只限TIM2、3、4、5************/
// 当使用不同的定时器的时候,对应的GPIO是不一样的,这点要注意
// 我们这里默认使用TIM3#define            GENERAL_TIM                   TIM3
#define            GENERAL_TIM_APBxClock_FUN     RCC_APB1PeriphClockCmd
#define            GENERAL_TIM_CLK               RCC_APB1Periph_TIM3
#define            GENERAL_TIM_Period            254//254US
#define            GENERAL_TIM_Prescaler         71
// TIM3 输出比较通道1
#define            GENERAL_TIM_CH1_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH1_PORT          GPIOA
#define            GENERAL_TIM_CH1_PIN           GPIO_Pin_6// TIM3 输出比较通道2
#define            GENERAL_TIM_CH2_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH2_PORT          GPIOA
#define            GENERAL_TIM_CH2_PIN           GPIO_Pin_7// TIM3 输出比较通道3
#define            GENERAL_TIM_CH3_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH3_PORT          GPIOB
#define            GENERAL_TIM_CH3_PIN           GPIO_Pin_0// TIM3 输出比较通道4
#define            GENERAL_TIM_CH4_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH4_PORT          GPIOB
#define            GENERAL_TIM_CH4_PIN           GPIO_Pin_1

五、相关资料链接

  1. STC89C52RC程序下载 直戳跳转
  2. STM32F103C8T6程序下载
    1. 串口下载                直戳跳转
    2. ST-LINK下载             直戳跳转
    3. J-LINK下载              直戳跳转
    4. DAP-LINK下载            直戳跳转

六、视频效果展示与程序资料获取

视频连接    直戳跳转

资料获取            ( 滑到最后添加群号看公告免费获取)

七、项目所有材料清单

STC89C52RC驱动方案

图片

STM32F103C8T6驱动方案

图片

备注

K_A01_002

STC89C52RC系统板X1

STM32F103C8T6系统板X1

1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电

2、杜邦线建议不用太长的

RGB模块X1

RGB模块X1

Micro USB线X1

Micro USB线X2

母母杜邦线X4

母母杜邦线X4

J-LINK下载器

八、注意事项

  1. VCC GND请勿接反,接反易烧
  2. 显示异常时,排除接线接触不良

九、接线表格

单片机型号

模块

对应引脚(上:模块引脚 下:单片机引脚)

STM32F103

C8T6

RGB模块

GND

R

G

B

GND

PA6

PA7

PB0

STC89C52RC

RGB模块

GND

R

G

B

GND

P1.0

P1.1

P1.2

K_A01_002 基于单片机驱动RGB模块颜色渐变显示相关推荐

  1. K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示

    K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 UART对应程序: IIC对应程序: 四.部分 ...

  2. K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示

    K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接线引 ...

  3. K_A08_004 基于 STM32等单片机驱动MX1919模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 1.MX1919模块驱动时序 2.对应程序: 3.PWM信号 四.部分代码说明 接线说明 1.STC89C52RC+MX1919 ...

  4. K_A07_003 基于 STM32等单片机驱动DRV8825模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8825模块 1. ...

  5. K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 TB6612模块驱动说明 对应程序: ENA ENB输出PWM 四.部分代码说明 接线说明 1.STC89C52RC+TB661 ...

  6. K_A07_001 基于 STM32等单片机驱动A4988模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+A4988模块 1.2. ...

  7. K_A08_003 基于 STM32等单片机驱动L9110模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 L9110模块驱动时序 对应程序: PWM信号 四.部分代码说明 接线说明 1.STC89C52RC+L9110模块 2.STM ...

  8. K_A07_005 基于 STM32等单片机驱动 DRV8833 模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 步进电机驱动时序 对应程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8833模块 1.2.STM3 ...

  9. K_A08_012 基于 STM32等单片机驱动 DRV8833 模块按键控制直流电机正反转

    目录 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 驱动时序 对应程序: 四.部分代码说明 接线说明 STC89C52RC+DRV8833模块 STM32F103C8T6+DRV8833模 ...

最新文章

  1. 海思3536:交叉编译Qt4.8.4
  2. 网络营销推广软件浅析网络优化时该如何更好的判断友链的质量?
  3. MATLAB爬虫爬取股票数据
  4. STM32中IO口的8中工作模式
  5. 简单的session共享的封装
  6. Caffe官方教程翻译(5):Classification: Instant Recognition with Caffe
  7. 海贼王热血航线正在连接服务器,航海王热血航线连接服务器失败?解决方法一览...
  8. C++中实现Singleton的正确方法
  9. C/C++ 踩过的坑和防御式编程
  10. jmeter聚个报告怎么看qps_Jmeter 使用笔记之 html 报告扩展(一)
  11. 程序员的算法课(19)-常用的图算法:最短路径(Shortest Path)
  12. 集合框架之ArrayList集合
  13. C#字典类型转URL参数字符串
  14. ffmpeg 将拆分的数据合成一帧_FFMPEG 视频分割和合并
  15. 深信服vmp云桌面安装测试小结
  16. 星舆科技北斗高精度定位网启动北斗三号服务
  17. win10系统卡顿怎么解决?从这几方面入手准没错
  18. IP地址、网络号、主机号、网络地址、子网掩码、网关、192.168.0.1/24是什么意思
  19. denoise_timedomain 时域降噪
  20. 全解 Google(谷歌)基础设施架构安全设计

热门文章

  1. java创建线程(Thread)的5种方式
  2. java 线程组 历遍_Java并发之线程组ThreadGroup介绍
  3. CMake常用命令(五)add_executable命令 生成可执行文件
  4. 树链剖分——轻重链剖分
  5. L - 小鑫の日常系列故事(五)——卡片游戏
  6. Java项目:新闻管理系统(java+javaweb+jdbc)
  7. MySql的sql语句执行顺序
  8. 海外媒体是怎么玩NFT的?
  9. C++中的map排序
  10. 今天上午听了一下erlang介绍