Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP-MCXN236
NXP MCXN236测评——rt-thread中配置启动PWM
发布于 2024-07-01 17:21:08 浏览:296
订阅该版
本次活动为rtthread主办的,测试rtthread对MCX-N947这款开发板的适配以及操作指南,本次我们将用rtthread实现对MCX-N236的PWM操作。 拉取完整的rt-thread-master,地址为:https://github.com/RT-Thread/rt-thread/ (注意尽量拉去最新的master,尤其是对于新的开发板或者芯片,拉取的是全部支持芯片的,可以根据自己的需要进行删减)。 本次测试的对象是MCX-N236,打开rtthread下的keil工程后会自动安装Pack包。 这次编译没有任何报错,之前在调试MCX-N947时总是会有一个rt_vsnprintf.c文件找不到,这一次没有这样的报错,接下来我们还是使用env工具进行自定义工程的建立: 我们在特定的bsp文件夹下右键**打开env工具**: ![1.png](https://oss-club.rt-thread.org/uploads/20240701/3f46393c3596f869d7e999fb5dbc61e0.png.webp) 我已经安装了新的2.0.0版本,不过打开看到的依然是1.5.2版本,不知道是否正确,不过env工具是可以正常使用的,之前的版本文件已经全部被我删除了; **输入menuconfig 命令**,回车; ![2.png](https://oss-club.rt-thread.org/uploads/20240701/69306f75ce593e372da3bea12fb38f79.png.webp) 确实可以感觉到页面有了一些变化; 进入配置界面**Hardware Drivers Config-->On-chip Peripheral**; ![3.png](https://oss-club.rt-thread.org/uploads/20240701/9f0f6c0a9f2964d7404c246e8d01bd3e.png.webp) PWM的产生涉及到定时器和PWM,**打开Timer+PWM**+最后一项: ![4.png](https://oss-club.rt-thread.org/uploads/20240701/81a1202ceebd8feb95315e56e5eda048.png) 返回到cmd界面**输入scons --target=mdk5**,生成新的工程: ![5.png](https://oss-club.rt-thread.org/uploads/20240701/821e6f7ea457288e91bdc95fd2e4516d.png) 我们打开\borad\Kconfig可以看到如下: ![6.png](https://oss-club.rt-thread.org/uploads/20240701/91a180f790912893c3dbf00a1d428e4b.png) rt-thread目前还没有完全支持N236,所以我们需要根据N947去修改,部分引脚对应不同。 **硬件连接:** ![7.png](https://oss-club.rt-thread.org/uploads/20240701/008c1263d89c1d269f3ea7814ea44c40.png) 如上图,RGB-GREEN对应的引脚是P4_19,在pin_mux.c中把PORT4->PCR[19]解锁,注意在自定义生成的工程中FLEXIO也使用的了PORT4->PCR[17]~PORT4->PCR[19]引脚,根据实际需求进行配置,我们这里用作了LED的控制,就将对应的FLEXIO使用的代码屏蔽,添加PORT4->PCR[19]的初始化代码,注意PORT4->PCR[19]对应的是CT3_MAT3: ![8.png](https://oss-club.rt-thread.org/uploads/20240701/21d4fcbae087a5bb095547db731c441e.png) 我们在\borad\Kconfig中修改green对应的通道名: ![9.png](https://oss-club.rt-thread.org/uploads/20240701/6359e995c42dd02de0f79fb57ca51deb.png) 修改borad.c中的通道对应的GPIO配置: ```c #if defined(BSP_USING_LEDG_PWM) && defined(BSP_USING_PWM) PORT_SetPinMux(PORT4, 19, kPORT_MuxAlt4); #endif ``` main中添加如下代码: ```c #define PWM_DEV_NAME "pwm3" /* PWM NAME */ #define PWM_DEV_CHANNEL 3 /* PWM CHANNEL */ struct rt_device_pwm *pwm_dev; /* PWM device */ 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/20240701/5720569801bcbed47414eade88a5c0d9.png.webp)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
无言的朝圣
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
推荐文章
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部