Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PWM
NXP 微控制器
NXP-MCXN947
NXP MCXN947测评: rt-thread中配置启动PWM
发布于 2024-03-27 17:22:03 浏览:296
订阅该版
[tocm] 本次活动为rtthread主办的,也是为了测试rtthread对MCX-N947这款开发板的适配以及操作指南,本次我们将用rtthread实现对MCX-N947操作。 拉取完整的rt-thread-master,地址为:https://github.com/RT-Thread/rt-thread/ 不过最新的rt-thread-master直接编译存在问题如下: ![1.png](https://oss-club.rt-thread.org/uploads/20240327/de0bf31f71ece958c35ce3c2468747b1.png) 对应的是rt_vsnprintf.c文件找不到,我们通过搜索发现整个rt-thread-master中也没有这个文件,直接使用这个MDK是行不通的, 我们通过env工具重新生成MDK工程(使用手册地址:https://www.rt-thread.org/document/site/#/development-tools/env/env) 新工程编译后发现如下问题(.scf文件中的问题,有的定位还是空白位置。): ![2.png](https://oss-club.rt-thread.org/uploads/20240327/2768c147b35c09c8cd5fc8722d319b2c.png.webp) 上述问题中的error:L6050U,需要破解keil,在破解的过程中注意注册机被识别病毒问题,关闭windows的实时保护以及杀毒软件,同时以管理员身份运行keil和注册机。破解后可以消除这个问题。 15个警告信息可以忽略,不影响编译下载。 **我们通过env工具添加PWM功能:** ![3.png](https://oss-club.rt-thread.org/uploads/20240327/0d7c41c2b122fed5d80976abb0797c4b.png.webp) 在目前文件夹右键打开env工具; ![4.png](https://oss-club.rt-thread.org/uploads/20240327/b9cd966c4687c9c26d277f8cf84346f0.png.webp) 输入menuconfig 命令,回车; ![5.png](https://oss-club.rt-thread.org/uploads/20240327/097ff8e7eaebdfd13df874395a1bac6c.png.webp) 进入配置界面; ![6.png](https://oss-club.rt-thread.org/uploads/20240327/c48db8d7568d46bb5761662275e3de97.png) 选择Hardware Drivers Config -->On-chip Peripheral ,打开Timer+PWM+最后一项;返回到cmd界面输入scons --target=mdk5,生成新的工程。 我们打开`\borad\Kconfig`可以看到如下: ![7.png](https://oss-club.rt-thread.org/uploads/20240327/281aa06b58dade8be79c27d2eb4109bc.png) rt-thread中已经支持PWM功能了,直接在工程中添加drv_pwm.c,我们编译以后发现错误,提示rt_device_pwm_register未定义,该函数属于官方组件“rt_drv_pwm.c”内的内容,找了好久才发现,在\rt-thread-master\components\drivers\misc下。 ## 硬件连接: ![8.png](https://oss-club.rt-thread.org/uploads/20240327/4d55b08222ffe3e773307861347ef8eb.png.webp) RGB-GREEN对应的引脚是P0_27,在pin_mux.c中把PORT0->PCR[27]解锁; **main中添加如下代码:** ```c #define PWM_DEV_NAME "pwm0" /* PWM设备名称 */ #define PWM_DEV_CHANNEL 3 /* PWM通道 */ struct rt_device_pwm *pwm_dev; /* PWM设备句柄 */ int pwmtest(void) { rt_uint32_t period; period = 1000000; /*??ns ???:1ms (1KHz)*/ /* 查找设备 */ pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME); if (pwm_dev == RT_NULL) { rt_kprintf("pwm test run failed! can't find %s device!\n", PWM_DEV_NAME); return RT_ERROR; } rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, period/3); //rt_device_control(pwm_dev, PWM_CMD_ENABLE, &configuration); rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL); rt_kprintf("pwm start\r\n"); return 0; } ``` ## 测试效果如下: ![10.png](https://oss-club.rt-thread.org/uploads/20240327/20c6b4f4960e48751ec570d77735f0d7.png.webp) 代码地址:https://gitee.com/qin-tian0303/rt-thread-mcxn947-pwm 注意:本代码中只包含了MCX-N947 PWM测试相关的工程和Libraries,rt-thread其他支持文件请下载最新库或者env工具生成,如下图: ![11.png](https://oss-club.rt-thread.org/uploads/20240327/f21a519ee4999a6326984053ee1b3f78.png.webp)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
无言的朝圣
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
试贴-消灭0主题
2
LPC M4的一些资料
3
LPC4088的临时分支
4
lpc1788 ad 不稳定
5
1788 LCD控制器缓冲区字节问题
6
一起来学习LPC4088吧
7
上传LPC4088的realtouch主工程
8
RealBoard 4088预定帖 [第一批板子不多,预定提前结束]
9
晒RealBoard LPC4088开箱照啦,速带小板凳前来围观
10
4088主程序需要的SD卡资源
推荐文章
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组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部