Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
N32L40XCL-STB
串口
N32L40XCL-STB 开发板模块评测任务大挑战之UART
发布于 2023-05-15 18:49:44 浏览:418
订阅该版
本文主要对通过RT-Thread Studio对国民技术开发板N32L40XCL-STB 进行UART外设配置,实现开发板串口功能。 1.开发前准备: 1.1开发环环境:RT-Thread Studio(官网下载) 1.2开发板:N32L40XCL-STB 开发板(板载调试器,也可使用常用的ST-link下载) 1.3环境配置:下载SDK支持包(这里其它测评任务已有详细的说明,不在赘述) 1.4国民技术产品资料下载FTP访问地址 ftp://download.nationstech.com(国内/海外) 旧地址已停用 ftp://58.250.18.138 (国内) 选择对应型号资料下载 2.具体步骤 2.1 点击文件新建RT-Thread项目选择基于开发板,配置界面如下 ![Snipaste_2023-05-15_18-19-08.png](https://oss-club.rt-thread.org/uploads/20230515/7646c0d99f024b4c37f4cd27de6c4e53.png.webp) 初始化界面代码如下 ```c #include
#include
#include
/* defined the LED3 pin: PB5 */ #define LED3_PIN GET_PIN(B, 5) int main(void) { /* set LED3 pin mode to output */ rt_pin_mode(LED3_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED3_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED3_PIN, PIN_LOW); rt_thread_mdelay(500); } } ``` UART具体操作函数: ![Snipaste_2023-05-15_18-39-45.png](https://oss-club.rt-thread.org/uploads/20230515/66ff883f072770f945d335f773e9befc.png.webp) 2.2修改添加一下代码后编译下载: ```c #include
#define DBG_TAG "main" #define DBG_LVL DBG_LOG #include
#include
rt_device_t dev_usart1; struct rt_semaphore sem; rt_thread_t thread; struct serial_configure u1_configs = RT_SERIAL_CONFIG_DEFAULT; rt_err_t rx_callback(rt_device_t dev, rt_size_t size) { rt_sem_release(&sem); return RT_EOK; } void serial_thread_entry(void *parameter) { char buffer; while(1){ while(rt_device_read(dev_usart1, 0, &buffer, 1) != 1){ rt_sem_take(&sem, RT_WAITING_FOREVER); } rt_kprintf("%c",buffer); } } int main(void) { rt_err_t ret = 0; //查找设备 dev_usart1 = rt_device_find("uart1"); if(dev_usart1 == RT_NULL){ LOG_E("rt_device_find[uart1] failed...\n"); // return -EINVAL; } //打开设备 ret = rt_device_open(dev_usart1, RT_DEVICE_OFLAG_RDWR|RT_DEVICE_FLAG_INT_RX); if(ret < 0){ LOG_E("rt_device_open[uart1] failed...\n"); return ret; } rt_device_control(dev_usart1, RT_DEVICE_CTRL_CONFIG, (void *)&u1_configs); //控制设备 rt_device_set_rx_indicate(dev_usart1, rx_callback); //设置回调函数 rt_sem_init(&sem,"rx_sem", 0, RT_IPC_FLAG_FIFO); //信号量初始化 thread = rt_thread_create("dev_usart1",serial_thread_entry , 0, 1024, 10, 5); //创建线程 rt_thread_startup(thread); //启动线程 rt_device_write(dev_usart1, 0, "rt-thread usart test\r\n", rt_strlen("rt-thread usart test\r\n")); //串口发送函数 return RT_EOK; } ``` 3.结果编译(使用RT-Thread Studio 自带串口终端工具查看结果) ![Snipaste_2023-05-15_18-26-56.png](https://oss-club.rt-thread.org/uploads/20230515/1a8e0d85a799ccf903f7c0fabbd94333.png) 心得体会:RT-Thread studio 提供了很多SDK支持包环境友好,之后还会用它和其它开发板做更多的尝试。 哔哩哔哩演示视频链接:https://b23.tv/5MUwoU6
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
yangqiuqiang
yang
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
串口DMA发送数据时,数据被覆盖
2
关于串口DMA模式下rt_device_close问题
3
利用stm32f427实现usb转串口,电脑端什么也没有识别到
4
finsh 控制台 适配 RS 485请大神指点????
5
uart_sample.c 中,读串口设备时偏移量pos要设置为-1而不是0?
6
【结贴】at_device软件包中对串口接收数据缺少判断导致数据接收异常
7
串口无法接受数据,但可以发送
8
串口如何有效的清除掉接收缓冲,而不必一个一个的去读取
9
串口接收使用方式问题
10
雅特力FINSH问题
推荐文章
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
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部