Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
SPI
u8g2
【FRDM-MCXA156测评】- 硬件SPI模块
发布于 2025-03-01 18:12:42 浏览:110
订阅该版
[tocm] # 引言 本文介绍如何在NXP FRDM-MCXA156 开发板上配置和使用 RTT系统,通过硬件SPI进行OLED 驱动,引用u8g2 三方库进行界面显示及控制 # NXP FRDM-MCXA156 开发板 ## 功能框图如下  ## 按键原理图  ## LED  ## I3C  ## 扩展口  ## CAN USB  # 准备环境 [RTT 提供的指南](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/frdm_mcxa156/quick-start "指南") [官网指南](https://www.nxp.com/document/guide/getting-started-with-frdm-mcxa156:GS-FRDM-MCXA156?section=get-software) [keil 支持包](https://download.csdn.net/download/xinshuwei/90442576) [rtt 代码仓库](https://gitee.com/rtthread/rt-thread) [env 工具](https://download-redirect.rt-thread.org/download/env_release/env-windows-v2.0.0.7z) keil 编译器6.10试了下不支持,下载6.18版本可以正常使用 ## 上电点灯 ```c #define LED_PIN ((3*32)+0) ``` 使用三色灯的蓝色,编译使用板载的DAPlink 下载,按rst 按键重启即可 # ENV SPI 配置 此芯片支持2个spi,默认加载了SPI1 驱动,后续添加下SPI0 pinmux 设置,SPI0后续也可以使用起来,这里使用SPI1 进行测试验证  1. 在rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa156 路径下打开env 输入 ```c menuconfig ```  选择最后一个Hardware Driver Config  选择on-chip Peripheral Drivers  使能spi 及spi1 在最开始的菜单中选择 online packages->multimedia packages->u8g2->legacy 如下图进行配置  版本使用c 例子使用 ssd1306 SPI HW  点击 S Q(保存 退出) 输入 ```c pkgs --update ``` 下载u8g2代码 最后通过 ```c scons --target=mdk5 ``` 重新生成keil 工程即可 # 硬件连接 按图进行连接及调整,默认Arduino 接口没有spi ,默认是PWM  如原理图所示,需要进行调整  # 代码修改 ```c #include
#include
#include
#include
// You may reference Drivers/drv_gpio.c for pinout // In u8x8.h #define U8X8_USE_PINS #define OLED_SPI_PIN_RES ((3*32) +17) #define OLED_SPI_PIN_DC ((1*32) +15) #define OLED_SPI_PIN_CS ((2*32) +6) static void u8g2_ssd1306_12864_4wire_hw_spi_example(int argc,char *argv[]) { u8g2_t u8g2; // Initialization u8g2_Setup_ssd1306_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread); u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_CS, OLED_SPI_PIN_CS); u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_DC, OLED_SPI_PIN_DC); u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_RESET, OLED_SPI_PIN_RES); u8g2_InitDisplay(&u8g2); u8g2_SetPowerSave(&u8g2, 0); // Draw Graphics /* full buffer example, setup procedure ends in _f */ u8g2_ClearBuffer(&u8g2); u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr); u8g2_DrawStr(&u8g2, 1, 18, "U8g2 on RT-Thread"); u8g2_SendBuffer(&u8g2); u8g2_SetFont(&u8g2, u8g2_font_wqy12_t_gb2312); u8g2_DrawUTF8(&u8g2, 1, 40, "NXP MCXA156"); u8g2_DrawUTF8(&u8g2, 1, 60, "硬件SPI测试"); u8g2_SendBuffer(&u8g2); /* u8g2_SetFont(&u8g2, u8g2_font_unifont_t_symbols); u8g2_DrawGlyph(&u8g2, 112, 56, 0x2603 ); u8g2_SendBuffer(&u8g2);*/ } MSH_CMD_EXPORT(u8g2_ssd1306_12864_4wire_hw_spi_example, hardware 4 wire spi ssd1306 sample); ``` 指定 RES DC CS 管脚 进行OLED 初始化 使能及显示 这里注意要显示中文的话,此c 文件需要保存成utf8 编码格式,否则会显示乱码 # 实际效果 
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
xinshuwei
这家伙很懒,什么也没写!
文章
9
回答
0
被采纳
0
关注TA
发私信
相关文章
1
BBB的SPI驱动
2
求个SPI上挂两个或多个设备的使用例子
3
SPI设备有个bug
4
spi flash 的fatfs使用一段时间后读写文件出现故障
5
SPI驱动
6
请教rt_spi_configure函数理解
7
SPI FLASH挂载的问题
8
SPI-FLASH 文件系统 SPIFFS
9
求助一个完整的 spi flash 驱动
10
关于同时使用文件系统与SPI FLASH的问题
推荐文章
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
rt-smart
RTC
FAL
I2C_IIC
cubemx
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
Debug
SFUD
ulog
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
4
个答案
2
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
a1012112796
2
个答案
1
次被采纳
聚散无由
2
个答案
1
次被采纳
加缪
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部