RT-Thread 串口应用指南

所需积分/C币:47 2018-11-22 11:47:04 1.22MB PDF
15
收藏 收藏
举报

本应用笔记描述了如何使用 RT-Thread 的串口设备,包括串口配置、设备操作接口的应用。并给出了在正点原子 STM32F4 探索 者开发板上验证的代码示例。
设备应用笔记 问题阐述 RT- Thread提供了一套简单的MO设备管理框架,它把O设备分成了三层进行处理:应用层、 ○设备管理层、硬件驱动层。应用稈序通过RT- Thread的设备操作接口获得正确的设备驱动,然后通 过这个改备驱动与底层J○硬件设备进行数据(或控制)交互。 RT-Thread提供给上层应用的是一个抽 象的设各操作接冂,给卜层设备提供的是底层驱动框架。 应用程序 用户实现 设备操作接口 设备管理框架 驱动框架 uart驱动iic驱动spi动gpio驱动 硬件外设:串口、 、网卡 图A.1 RT-Thread设备管理框架 那么用户如何使用设备操作接口开发出跨平台的串口应用代码呢? 问题的解决 本文基于正点原子STM32F4探索者开发板,给出了串口的配置流程和应用代码示例。由于RT Thread设备操作接口的通用性,因此这些代码与硬件平台无关,读者可以育接将它用在自已使用的硬 件平台上。 正点原子STM32F4探索者开发板使用的是STM32F407ZET6,具有多路串口。我们使用串口1 作为she终端,串口2作为实验用串口,测试数据收发。终端软件使用puty。板载串口1带有USB 转串口芯片,因此使用UsB线连接串口1和PC即可;串口2则需要使用USB转串口模块连接到 PC。 设备应用笔记 0 PaF7rTT STM32F4 串口2 ALIEnt EXPLORER wwopenedv.com 串口1 图A.2实验使用的正点原子STM32F4探索者 31准备和配置工程 下载RT-Thread源码htps/github.com/RT-Thread/rt-thread 进入 rt-thread\ sisTm3214 (X-HAL目录,在env命令行中输入 menuconfig,进入配置界血, 使用 menuconfig工具(学习如何使用)配置工程。 配置she使用串凵1:RT- Thread Kernel-> Kernel Device Object-->修改the device name for console为uart1。 勾选 Using UART1、 Using UART2,选择芯片型号为STM32F407zE,时钟源为外部 8MHz,如图所小: CONFIDENTIAL 设备应用笔记 Q 1. Ccnsolez-menuconfig abs Help ·图◆| Search 吗型画 config - RT-Thread Configuration Arrow keys navigate the menu. <Enter> selects submenus --->(or empty submenus ----) Highlighted letters are hockeys. Pressing <I> a工es C> tO exi=, <? for Help, </ for Search. Legend: [= built-in[1 FT-Thread Bermel RT-Thread Components T-Thread online packages Devise type (STM32E207ZE I sing HSI as clock source (800C0C0) HSE Value (168c0C000) Syatem Clock value 1 L811 ng JARTI L』L彐n山A 」LanA CS=cC7 e EXLt 5 Helt save s Load NM13940 10095 图A.3使用 menuconfig配置串口 输入命令 scons- target=mdk5-s生成ke⊥程,打开上程后先侈改MCU型号为 sTM32F407zETX,如图所 W FArt-thread bsp\stm32 4y0x-HAL' roject.uvproix-LMisor FilE Edt view Poject Flash Debug Pcripnerls Tpol: sves window Help 口团园路|和中門阳费距甲作战15A回盛州國|·。回 參增|t::m公晶昌◆令 -- inject: pineri ns for Toroct 'rt thread stm32f4s 日边 Applicatio Cutput Listing【x”,1C|Ax1l“Dls11,x 国 Ht Dr/ers 由自b erice: TM32F407ZET Pack: Keil. S/ t_DFP 211. 由国t34xic Toole: AN LFL:http:nwyke:1-(mlnack 日CMs Search STM32「4_ Drver kErr 日 DeviceDrivers Na si s214v 6 by c of oCM torc cot doc RAM LU modes 由国 doline +.t STV32F4 5 awith qued-atue Incremental ere>der input lerant /]s 庄MM4411 m自 rincbuferc E STM32F412 TiIm rnrr rimhergeneranr 由国 WaI'CUUE.C <. S% STV32F413 n B woikqueuec 日frh 图A.4检查芯片型号 打开pu!y,选择正确的串口,软件参数配置为115200-8-1-N、无流控。如图所小: 设备应用笔记 级 Putty neuralis 曰-Sein Ostiore car rol ing local eei al iree Serial line to connect c Teatures Cur fiqure Lhe seri=l lie Windo 11520 election Fow contrl About CanCel 图A.5 putty配置 编译、下载程序,按下复位后就可以在串口1连接的终端上看到RT- Thread标忐log了,输 入 list device命令能查看到uart1、uart2 Character Device就表示串口配置好了。 CoM9 - PuTTY RT Thread Cperating system 302 build wan 8 201 2006- 2017 Copyright by rt-thread team msh >list device device t ype ref count art2 character device uart Character Device 图A.6使用 ist device命令查看uar设备 CONFIDENTIAL 设备应用笔记 32加入串囗相关代码 Project 区 ts Project: pro 日加rt- thread e:m32f1x A app uart. c 出ran.c C 圖r32f4x_it,c □CMS5 -STM2「4o|| AL Driver 由□ CORIEK-M4 evItEurlyEI finsh 图A.7添加本文提供的文件到工程 木应用笔记附带代码app_uar.c、 app uart. h, app uart.c中是串口相关操作的代码,方使阅读 app uart.c中提供了4个函数 uart open、 uart putchar、 uart putstring、 uart getchar以方便使用串 口。app_ uart. c中的代码与硬件平台无关,读者可以把它直接添加到自己的工程。利用这几个函数在 main. c中编写测试代码 c源码如卜 Include " app uart. h include " board. hI vcid test thread entry (vcidx parameter) rt uint8 t uart rx dat 打开串口*/ f RT EOK) rt kprintf(uart open error.\n") W e rt thread delay(10) 设备应用笔记 /单个字符写 rt putchar(2) t putchar( 8) 写字符串* uart putstring("HellO RT-Thread!\r\n")i /*读数据 uart rx data uart getchar()i 错位 uart rx data uart rx data I /输出* uart putchar(uart rx data)i int main (void) rt thread t tid /创建test线程 tid rt toread create("test test thread ent RT NULT CONFIDENTIAL 设备应用笔记 /创建成功则启动线程 if(七ia!= RT NULL) rt tread startup(tid) return o 这段程序实现」如下功能: main函数里面创建并启动了测试线程 test thread entry. 测试线程调用 uart open函数打开指定的串口后,首先使用 uart_putchar函数发送字符和 uart_putstring函数发送字符串。 接着在 while循环里由调用 uart getchar函数读取接收到的数据并保存到局部变量 uart rx data中,最后将数据错位后输山。 33运行结果 编译、将代码下载到板卡,复位,串口2连接的终端软件ρuty(软件参数配置为11520-8-1-N 无流控)输出了宁符2、0、1、8和字符串 Hello rt- Thread!。输入宁符‘A’,串口2接收到将其错 位后输出。实验现象如图所示 E COM5-PUTTY Hello RT-Thread 图A.8实验现象 图中 sscom连接廾发板的串口2作为测试串口 进阶阅读 串口通常被配置为接收中断和轮询发送模式。在中断模式下,CPU不需要一直查询等待串口相关 标志寄存器,串口接收到数据后触发中断,我们在中断服务稈序进行数据处理,效率较高。 RT-Thread 官方bsp默认便是这种模式 4.1使用哪个串口 uart open函数用于打开指定的串口,它完成了串口设备回调函数没置、串口设备的开启和事件的 初始化。源码如下: 设备应用笔记 rt err t uart open(const char *name rt err t resi /k查找系统中的串口设备木 uart device rt device find(name); /*查找到设备后将其打开 if (uart device ! RT NUT.T, res rt device set rx indicate(uart device, uart intput) /*检登返回值* 二f(res RT EOK) rt kprintf("set s rx indicate error. d\n", name, res)i return -R FRROR /大打开设备,以可读写、中断方式木 res rt device open(uart device, RT DEVICE CFLAG RDWR RT DEVICE FLAG INT RX)i /*检查返回值 二f(res!= RT EOK) rt kprintt("open s device error. od\n", name, res)i return -R ERROR; eI se rt kprintf("can't find %s device.\n", name CONFIDENTIAL

...展开详情
试读 24P RT-Thread 串口应用指南
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    RT-Thread 串口应用指南 47积分/C币 立即下载
    1/24
    RT-Thread 串口应用指南第1页
    RT-Thread 串口应用指南第2页
    RT-Thread 串口应用指南第3页
    RT-Thread 串口应用指南第4页
    RT-Thread 串口应用指南第5页

    试读结束, 可继续读3页

    47积分/C币 立即下载 >