Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP 微控制器
NXP-MCXN236
SPI
rt-thread中配置SPI继续loopback测试
发布于 2024-07-06 20:51:40 浏览:370
订阅该版
本次测试进行SPI的loopback,可以看到根据NXP的LP_FLEXCOMM(Low-Power Flexible Communication Interface)模块当UART用,可以当SPI用,也可以当I2C用,我们在串口测试的是时候可以看到在 board 文件夹下的板级 Kconfig 文件中2/4/5暂时被分配给了串口,1/3/6初步分配给了SPI,我们本次进行SPI的loopback本来初步想通过SPI6实现,实际上在开发板上SPI6硬件连接着W25Q64,并没有引出,所以修改通过SPI3进行。 SPI3相应的引脚为 - CS:P1_3、 - CLK:P1_1、 - MOSI:P1_0、 - MISO:P1_2, 对应的接口为FC1,注意要实现loopback请将MOSI:P1_0、MISO:P1_2连接上。 打来evn工具: ![1.png](https://oss-club.rt-thread.org/uploads/20240706/116bcc85d347cfb96015131b668d5f79.png.webp) 输入menuconfig 命令,进入配置界面`Hardware Drivers Config-->On-chip Peripheral`,打开SPI3: ![2.png](https://oss-club.rt-thread.org/uploads/20240706/24afbe7e69436d16a47883e7e454424f.png) 返回到cmd界面输入scons --target=mdk5,生成新的工程: ![3.png](https://oss-club.rt-thread.org/uploads/20240706/e02d10834f0d45824b3b656b361a02de.png) 代码编译后出现了4个错误: 一个是缺少一个`“}”`,就在`static struct lpc_spi lpc_obj`中对应开启的SPI6处,添加上就好了; 一个是kDmaRequestMuxLpFlexcomm6Tx未定义,这个属于底层文件中的内容,针对N236的放在了MCXN236.h中了,添加头文件并添加: ```c #define kDmaRequestMuxLpFlexcomm6Tx kDma0RequestMuxLpFlexcomm6Tx #define kDmaRequestMuxLpFlexcomm6Rx kDma0RequestMuxLpFlexcomm6Rx ``` 编译后4个错误就都消失。 接下来我们添加SPI的实例: ```c #define SPI_NAME "spi30" #define CS_PIN (1*32+3) static struct rt_spi_device *spi_dev; /* attach spi device */ static int rt_spi_device_init(void) { struct rt_spi_configuration cfg; rt_hw_spi_device_attach("spi3", SPI_NAME, CS_PIN); cfg.data_width = 8; cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB | RT_SPI_NO_CS; cfg.max_hz = 1 *1000 *1000; spi_dev = (struct rt_spi_device *)rt_device_find(SPI_NAME); if (RT_NULL == spi_dev) { rt_kprintf("spi sample run failed! can't find %s device!\n", SPI_NAME); return -RT_ERROR; } rt_spi_configure(spi_dev, &cfg); return RT_EOK; } INIT_APP_EXPORT(rt_spi_device_init); /* spi loopback mode test case */ static int spi_sample(int argc, char **argv) { rt_uint8_t t_buf[32], r_buf[32]; int i = 0; static struct rt_spi_message msg1; for (i = 0; i < sizeof(t_buf); i++) { t_buf[i] = i; } msg1.send_buf = &t_buf; msg1.recv_buf = &r_buf; msg1.length = sizeof(t_buf); msg1.cs_take = 1; msg1.cs_release = 1; msg1.next = RT_NULL; rt_spi_transfer_message(spi_dev, &msg1); rt_kprintf("spi rbuf : "); for (i = 0; i < sizeof(r_buf); i++) { rt_kprintf("%x ", r_buf[i]); } rt_kprintf("\nspi loopback mode test over!\n"); return RT_EOK; } MSH_CMD_EXPORT(spi_sample, spi loopback test); ``` 测试结果如下: list device: ![4.png](https://oss-club.rt-thread.org/uploads/20240706/c768bdc258698113026a543c87f937a1.png) 通过控制台运行spi_sample: ![5.png](https://oss-club.rt-thread.org/uploads/20240706/0f38b146d5c5de491deffc43bb6c9e08.png) 在这里有几个注意的地方, 一个是loopback的实现实际上就是利用的SPI的自发自收,所以不要忘记硬件要将MOSI和MISO要连接上,不要连接错了; 另外一个例程中带有spi_sample.c的例程,不管是自己写还是修改,在更换SPI通道重新生成keil工程的时候注意工程中是不是把spi_sample.c去掉了,去掉就添加一下,因为spi_sample.c中的INIT_APP_EXPORT等自动化的部分如果没有就不会编译,这样SPI的例程就不会添加进去了,对于工程来说是不会报错的,可是没有自动化初始化你就无法使用了。
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
无言的朝圣
这家伙很懒,什么也没写!
文章
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
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
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部