Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread学习营
【内核和外设学习营】 十里 PWM单色呼吸灯实验
发布于 2018-09-05 11:59:03 浏览:2912
订阅该版
* 本帖最后由 hyz_rtt 于 2018-9-6 19:50 编辑 * 1、实验要求: 要求硬件上:至少有一路带PWM输出功能的GPIO,能够用来连接 LED 灯有一路串口用来做 msh shell 终端 软件上:BSP 中已经实现如下驱动:串口驱动,PIN 驱动,PWM驱动 2、准备工作: 硬件:野火霸天虎stm32407开发板 软件:rtt3.1.0 stm32f4xxhal、env0.7.1 3、示例代码 ```#include
#include
#include "stm32f4xx.h" #include "board.h" /********************************宏定义*************************************/ #define PERIOD 512 #define CH_R 1 //#define CH_G 1 //#define CH_B 1 /********************************变量*************************************/ /* LED亮度等级表 PWM表,指数曲线*/ /*?此表使用工程项目下的python脚本index_wave.py生成*/ uint16_t indexWave[] = { 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 17, 18, 19, 20, 22, 23, 25, 27, 29, 31, 33, 36, 38, 41, 44, 47, 51, 54, 58, 63, 67, 72, 77, 83, 89, 95, 102, 110, 117, 126, 135, 145, 156, 167, 179, 192, 206, 221, 237, 254, 272, 292, 313, 336, 361, 387, 415, 445, 477, 512, 512, 477, 445, 415, 387, 361, 336, 313, 292, 272, 254, 237, 221, 206, 192, 179, 167, 156, 145, 135, 126, 117, 110, 102, 95, 89, 83, 77, 72, 67, 63, 58, 54, 51, 47, 44, 41, 38, 36, 33, 31, 29, 27, 25, 23, 22, 20, 19, 18, 17, 15, 14, 13, 12, 12, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1 }; /*计算PWM有多少个元素*/ rt_uint16_t POINT_NUM = sizeof(indexWave)/sizeof(indexWave[0]); /********************************示例函数*************************************/ //线程入口函数 void rt_pwm_rgb_entry(void* parameter) { rt_uint16_t i = 0; //使能通道 rt_pwm_enable(CH_R); // rt_pwm_enable(CH_G); // rt_pwm_enable(CH_B); while(1) { rt_pwm_set(CH_R, PERIOD, indexWave*); // rt_pwm_set(CH_G, PERIOD, indexWave*); // rt_pwm_set(CH_B, PERIOD, indexWave*); if(i >= POINT_NUM-1) i = 0; else i++; /* 设置整个过程为3s左右即可达到很好的效果*/ rt_thread_delay(3000/POINT_NUM); } } //初始化函数 int rt_breathe_rgb_init() { rt_device_t pwm_dev; rt_thread_t tid; pwm_dev = rt_device_find("pwm10"); if(NULL != pwm_dev) { tid = rt_thread_create("pwm_led", rt_pwm_rgb_entry, RT_NULL, 512, RT_THREAD_PRIORITY_MAX/3, 20); if (tid != RT_NULL) rt_thread_startup(tid); } return 0; } MSH_CMD_EXPORT(rt_breathe_rgb_init, rgb breathe by pwm.);``` 放到main()函数执行(利用MSH命令也可以),在用户main()里调用 rt_breathe_rgb_init()函数也可以。 4、实验步骤 env配置芯片型号stm32f407ZG、外部时钟源HSE25M、串口驱动、PIN驱动、PWM驱动 5、实验结果 红色灯不同程度的有序闪亮 6、遇到的问题:无 7、解决方法 备注: (1)野火霸天虎F407ZGT6的RGB灯对应PF6\7\8,分别对应TIM10\11\13的通道1,而这几个定时器只有一个通道,所以要实现单色呼吸灯还好,要实现256全彩灯就很麻烦,当时试着写了一下,可惜出现硬件报错,注册两个定时器就会报错,也没找到原因,有想法的期待实验回帖。实现肯定可疑的,因为裸机上是可以实现256全彩灯的。 (2)如果使用正点原子的探索者板子F407ZGT6,虽然连接的TIM5有四个通道可以,但是却没有全彩灯。 (3)如果使用一个板子有全彩灯,然后对应的定时器又有三个以上的通道,在此实验操做基础上,PWM底层驱动开三个通道,示例函数再修改一下就可以实现256全彩灯了。我是这么想的。有理解不对的的地方欢迎回帖。
查看更多
1
个回答
默认排序
按发布时间排序
hyz_rtt
2018-09-05
这家伙很懒,什么也没写!
补充一下实验控制台输出截图[attach]6060[/attach]
撰写答案
登录
注册新账号
关注者
0
被浏览
2.9k
关于作者
hyz_rtt
这家伙很懒,什么也没写!
提问
10
回答
38
被采纳
0
关注TA
发私信
相关问题
1
stm32f407+lan8720 lwip2.0 作业提交
2
玩溜GD32303E-EVAL BSP系列(五)----设备连接网络
3
onenet应用连不上云端
4
【文件系统】晴天文件匹配
5
rtt semc sdram 基于操作系统怎么初始化驱动设备
6
RT-Thread移植笔记
7
RT-Thread内核移植+LoIIs+STM32F103C8+StdLib
8
EVN编译报错,求助大神
9
【内核和外设学习营】十里 简单LED闪亮测试
10
【内核和外设学习营】 十里 串口指令控制RGB灯点亮的颜色
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
睿赛德科技正式推出RT-Thread开源 4+服务,助力企业用户发展
2
嵌入式大赛Top10排名公布!作品共赏,看大奖花落谁家!
3
基于开源操作系统的融合创新:睿赛德科技荣获汽车操作系统TOP10
4
k230运行rt-smart
5
RT-Thread SCons上手指北
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
C++_cpp
ulog
at_device
本月问答贡献
用户名由3_15位
15
个答案
2
次被采纳
rv666
6
个答案
1
次被采纳
张世争
3
个答案
1
次被采纳
lchnu
1
个答案
1
次被采纳
大懒猫
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部