电子说
一、概述
本人基于 rt-thread studio 对 N32L40XCL 进行I2C测试。具体表现为使用 N32L40XCL 的 I2C1 (PA4:I2C1_SCL;PA5:I2C1_SDA) 接口驱动四线 I2C OLED 0.96 寸屏幕。解决过程和遇到的问题及其解决方法如下。
二、问题及其解决措施
使用DAP-LINK时,无法下载
解决措施: 手动添加PACK包,解决下载错误问题。
具体步骤:copy资料包中的“Nationstech.N32L40x_DFP.1.0.0.pack”到rt-thread stuido软件安装位置下,以本机为参考“D:RT-ThreadStudiorepoExtractDebugger_Support_PackagesRealThreadPyOCD�.1.3packs”。复制粘贴之后,返回上一级目录“D:RT-ThreadStudiorepoExtractDebugger_Support_PackagesRealThreadPyOCD�.1.3”,修改文件“pyocd.yaml”,以记事本方式打开,添加“ - ./packs/ARM.Musca_A1_BSP.2.0.0-small.pack”
Nations MCU Download Tool V1.2.4下载
需要按照用户手册文档,安装驱动
对应资料包中“.N32L40xxx_V2.1.0.zipN32L40xxx_V2.1.03-用户手册(UserManual)”
但出现获取设备名错误,希望路过的小伙伴可以帮忙解决一下!
三、功能硬件接口
引脚定义
I2C1_SCL:PA4
I2C1_SDA:PA5
DAP下载连接
JTMS —> PA13
JTCK —> PA14
RST —> RST
四、使用说明
打开rt-thread settings,选择添加软件包
搜索软件包,u8g2,选择中间的组件进行添加
添加后,右击,选择配置项
添加保存后,进行编译,若无问题,则进行下一步。
五、模块功能的演示
六、代码讲解及链接
工程链接
#include
#include
#include
#include
#define OLED_I2C_PIN_SCL 4 // PA4
#define OLED_I2C_PIN_SDA 5 // PA5
static void u8g2_ssd1306_12864_sw_i2c_example(int argc,char argv[])
{
u8g2_t u8g2;
// Initialization
u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_CLOCK, OLED_I2C_PIN_SCL);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_DATA, OLED_I2C_PIN_SDA);
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_unifont_t_symbols);
u8g2_DrawGlyph(&u8g2, 112, 56, 0x2603 );
u8g2_SendBuffer(&u8g2);
}
//MSH_CMD_EXPORT(u8g2_ssd1306_12864_sw_i2c_example, i2c ssd1306 software i2c sample);
INIT_APP_EXPORT(u8g2_ssd1306_12864_sw_i2c_example);
使用INIT_APP_EXPORT();函数,对示例函数进行上机初始化,进行工作。
七、心得体会
RT-Thread studio对于外设接口的开发起到了方便作用,以及在线软件包的使用和图形化界面配置,极大的缩短了开发周期。对于I2C的理解与开发有了一定的理解。该芯片N32L40XCL对于I2C的设备模拟支持。
全部0条评论
快来发表一下你的评论吧 !