N32L40XCL-STB开发板模块评测任务大挑战之UART

本文主要对通过rt-thread studio对国民技术开发板n32l40xcl-stb 进行uart外设配置,实现开发板串口功能。
1.开发前准备:
1.1开发环环境:rt-thread studio(官网下载)
1.2开发板:n32l40xcl-stb 开发板(板载调试器,也可使用常用的st-link下载)
1.3环境配置:下载sdk支持包(这里其它测评任务已有详细的说明,不在赘述)
1.4国民技术产品资料下载ftp访问地址 选择对应型号资料下载
2.具体步骤
2.1 点击文件新建rt-thread项目选择基于开发板,配置界面如下
初始化界面代码如下
#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具体操作函数:
2.2修改添加一下代码后编译下载:
#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 testrn, rt_strlen(rt-thread usart testrn)); //串口发送函数
return rt_eok;
}
3.结果编译(使用rt-thread studio 自带串口终端工具查看结果)
心得体会:rt-thread studio 提供了很多sdk支持包环境友好,之后还会用它和其它开发板做更多的尝试。

苹果iPhone12出现降频和打字卡顿严重问题?
**分布式数据库|数据库数据类型**
数字下变频(DDC)中坐标变换模块的ASIC实现
FPGA多bit跨时钟域之格雷码(一)
交叉带式分拣机的工作原理是什么
N32L40XCL-STB开发板模块评测任务大挑战之UART
为什么要进行电机定子检测
如何连接LabVIEW与Arduino板
华为荣耀8青春版:精致不精简!3G+32G版仅需1399元
多功能车辆总线,深扒MVB协议
谷歌宣布Alphabet正关闭互联网气球项目Loon
CF7631双电源构成的高输入阻抗三运放电路图
苹果iOS10.3正式版怎么样?这11大功能更新让果粉炸锅了!
Zillow提供的100万美元机器学习房价预测大赛奖金会花落谁家?
如何通过在Python中使用并发来加速网页数据抓取项目
机器越智能,人们预测解释和理解其影响的能力就越差
业界先进的7nm工艺技术,集成594亿个晶体管
变频器损坏的原因及维修常识
地址总线和数据总线的关系、作用和宽度
高通推出一款新的SoC——骁龙750G 5G移动平台