查看: 637|回复: 0

【教程5】疯壳·ARM功能手机-串口实验教程

[复制链接]
  • TA的每日心情
    开心
    2022-4-17 15:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2022-8-10 15:32:31 | 显示全部楼层 |阅读模式
    分享到:
    ARM功能手机
    ——疯壳·开发板系列
    串口实验教程




    1.png
    图1



    第一节串口硬件电路

    串口通过USB口及手环下载调试线引出,连接MCU的P12与P13引脚,如下图所示:

    2.0.png
    2.1.png
    图2



    第二节 UART寄存器

    2.1 UART介绍
        这个UART符合工业标准16550,并且可以和外围设备串行通信。主设备(CPU)通过APB总线将数据写进UART并且被转换成串行格式并且发送到目标设备。串行数据也可以通过UART被接收存储之后,主设备读取接收的数据。
    UART模块不支持DMA,但是它有内部FIFOs,并且支持硬件流控制信号(RTS,CTS,DTR,DSR)。
    UART模块有16字节的发送和接收FIFO;支持硬件流控制(CTS/RTS);影子寄存器来减少软件开销并且有可编程的软件复位;发送寄存器为空的中断模式;IrDA 1.0 SIR模式支持低功耗模式;可编程的字节属性、校验位和停止位(1,1.5,2);可以断开通信及检测通信线是否断开;中断优先级的识别;可编程的串行通信波特率。
    2.2 UART寄存器
    UART相关的寄存器比较多,所以我们只介绍常用的寄存器,其它的可以参考官方数据手册DA14580_DS_v3.1.pdf,位于目录:..\WT开发板\硬件资料。
    2.2.1 接收缓冲寄存器

    3.0.png
    3.1.png
    图3
    15:8位:保留不使用;
    7:0位:接收缓存寄存器。
    2.2.2 中断使能寄存器

    4.0.png
    4.1.png
    图4
    15:8位:保留不使用;
    7位:发送空中断使能位;
    6:4位:保留不使用;
    3位:调制状态中断使能位;
    2位:接收状态中断使能位;
    1位:发送结束中断使能位;
    0位:数据接收完使能位。
    2.2.3 中断识别寄存器/FIFO控制寄存器

    5.png

    图5
    15:0位:写则为FIFO控制寄存器,读则为中断识别寄存器。
    2.2.4 通信线控制寄存器

    6.png
    图6
    15:8位:保留不使用;
    7位:波特率使能位;
    6位:停止控制位;
    5位:保留不使用;
    4位:奇偶校验选择位;
    3位:校验位;
    2位:停止位;
    1:0位:数据长度。
    2.2.5 调制器控制寄存器

    7.0.png
    7.1.png
    7.2.png
    图7
    15:7位:保留不使用;
    6位:红外通信使能位;
    5位:自动流控制使能位;
    4位:回路位,用于测试;
    3位:用户指定输出2;
    2位:用户指定输出1;
    1位:发送请求;
    0位:保留不使用。
    2.2.6 通信线状态寄存器

    8.0.png
    8.1.png
    8.2.png
    图8
    15:8位:保留不使用;
    7位:接收FIFO错误位;
    6位:发送器空位;
    5位:发送保持寄存器空位;
    4位:异常停止中断位;
    3位:帧错误位;
    2位:校验错误位;
    1位:溢出错误位;
    0位:数据准备好位。
    2.3 寄存器配置讲解
    #define CLK_PER_REG                 (* ( volatile uint16*)0x50000004)
    #define UART_RBR_THR_DLL_REG        (* ( volatile uint16*)0x50001000)
    #define UART_IER_DLH_REG            (* ( volatile uint16*)0x50001004)
    #define UART_IIR_FCR_REG             (* ( volatile uint16*)0x50001008)
    #define UART_LCR_REG                (* ( volatile uint16*)0x5000100C)
    #define UART_MCR_REG               (* ( volatile uint16*)0x50001010)
    #define UART_LSR_REG                (* ( volatile uint16*)0x50001014)
    #define UART_MSR_REG               (* ( volatile uint16*)0x50001018)
    #define UART_SCR_REG                (* ( volatile uint16*)0x5000101C)
    启动UART1模块的时钟CLK_PER_REG |= 0x0080;
    串口初始化寄存器配置:
    首先使能波特率配置UART_LCR_REG = 0X08;
    配置波特率UART_IER_DLH_REG = 0; UART_RBR_THR_DLL_REG = 9;
    8位数据,无校验,1位停止位UART_LCR_REG = 0X03;
    关闭红外通信功能UART_MCR_REG = 0X00;
    使能FIFO, UART_IIR_FCR_REG = 0X01;
    关闭中断UART_IER_DLH_REG = 0X00;
    接收一个字节,等待接收完成while((UART_LSR_REG&0x01)==0);读取接收数据rx_data = UART_RBR_THR_DLL_REG;
    发送一个字节0x55,等待发送为空while((UART_LSR_REG&0x20)==0);填充发送数据UART_RBR_THR_DLL_REG = 0xaa;



    第三节 UART实验
    实验需要使用的模块有:手机开发板底板,Jlink调试工具,USB转串模块、杜邦线、3.7V锂电池或Mocro USB线。
    使用USB转串模块连接手机蓝牙串口,连接方式如下:
        (1)USB转串模块一端只需要使用杜邦线连接RXD、TXD、GND三个引脚,如下图所示:

    9.png
    图9
    (2)手机主控底板一端需要使用杜邦线连接左侧J7三个引脚,与USB转串模块的引脚一一对应(串口引**叉),分别为RXD-->TXD、TXD-->RXD、GND-->GND,如下图所示:

    10.png
    图10
    使用JLINK通过杜邦线连接手机蓝牙,连接方式如下:
    (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:

    11.png
    图11
    (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:

    12.png
    图12
    将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
    打开串口实验的Keil工程uart.uvproj,位于目录:..\WT_Mobile\1.初级教程\DA14580\2_初级_串口\projects\target_apps\peripheral_examples\uart\Keil_5,如下图所示:

    13.png
    图13
    打开串口调试助手连接串口,波特率为115200。在KEIL中,编译代码,点击DEBUG,然后点击全速运行,就可以看到串口调试助手打印出的信息,发送什么就返回什么,例如发送“WT Mobile Test!”就会返回“WT Mobile Test!”,如下图所示:

    14.0.png

    14.1.png
    图14




    更多完整学习资料和对应开源套件,请登陆官网:“疯壳”

    如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系

    文件下载请点击: 串口教程.pdf (1.43 MB, 下载次数: 0)
    15.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 15:37 , Processed in 0.121697 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.