MSPM0L1306例程学习-UART部分(2)

这篇具有很好参考价值的文章主要介绍了MSPM0L1306例程学习-UART部分(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MSPM0L1306例程学习系列

1.背景介绍

写在前边的话:

  • 这个系列比较简单,主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。
  • 所有的例程均来自MSPM0 SDK的安装包,具体可到官网下载并安装: https://www.ti.com.cn/tool/cn/download/MSPM0-SDK/
  • 因为例程多数包含sysconfig文件,也就是配合图形配置工具进行的外设初始化。因此在学习时,不能只看主函数的代码,还要重点看下系统是怎么配置的。因此,每个例程都有一部分内容是PPT截图,来讲解图形配置文件。
  • 使用时,可以直接把添加注释的代码拷贝到自己的工程中进行阅读,比较方便。

UART部分的例程有10个,按照内容顺序重新排序整理如下:
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机

2.例程描述

本节讲解的例程是uart_external_loopback_interrupt。
UART模块的基本收发功能演示,外部环回(RX和TX短接),MCU发什么就收什么。
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机

3.SysConig配置描述

各部分的配置如下:
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机
MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机

4.代码注释

代码简单注释如下:

/*
 * UART模块使用的SDK例程
 * 文件名:uart_external_loopback_interrupt.c
 *
 * 配置描述:
 *   UART模块的基本收发功能演示,外部环回。
 *   1、系统的时钟配置:LFCLK=32kHz,MCLK=ULPCLK=CPUCLK=32MHz;
 *   2、串口的基本配置:BUSCLK, 波特率9600,数据位8,无校验位,停止位1,未使用硬件流控
 *   3、使用UART0,发送和接收,引脚为RX-PA9, TX-PA8
 *     仅使能接收中断,未使用DMA,未使用FIFO
 *
 * 操作描述:
 *   1、将uart的tx和rx通过杜邦线连接;
 *   2、下载程序,在串口接收中断里设置断点;
 *   3、点击RUN全速运行;
 *   4、可以观察看到串口接收到的数据等于发送的数据;
 *
 * 注意事项:
 *   1、该例程可以不用串口调试助手;
 *   2、如果使用的是红色的launchpad套件LP-MSPM0L1306,要注意跳线帽的设置;
 *     J16和J17两个跳线帽的位置要做调整,连接到BP端,芯片的引脚才会连接到侧面的双排针;
 *     然后再用杜邦线连接PA8和PA9. 也可以用偷懒的方法,J16和J17跳线帽拔掉后,直接短接中间两个;
 *   3、要特别注意实验的顺序,TX和RX要先连接,不然程序跑起来,Tx发送了,而Rx没收到,就进不了中断了!
 *
 * 思考:
 *   1、也可以考虑uart的tx和rx引脚,方便连接。也特别注意引脚复用的情况,避免出错!
 *
 * 修改:
 *   基于官方的sdk例程增加注释,xie_sx@126.com
 *
 */

#include "ti_msp_dl_config.h"

//延时5ms,确保在启动传输前,UART TX处于空闲状态
#define UART_TX_DELAY (160000)

uint8_t txData = 0, rxData = 0;

//用于表示数据接收的标志位
bool dataReceived;

int main(void)
{
    //SysConfig图形配置工具初始化配置函数
    SYSCFG_DL_init();

    //清除中断标志,使能中断
    NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
    NVIC_EnableIRQ(UART_0_INST_INT_IRQN);

    //延时(可选),确保UART TX处于空闲状态
    delay_cycles(UART_TX_DELAY);

    while (1)
    {
        //数据接收的标志位清零
        dataReceived = false;
        //更新要发送的数据(+1处理)
        txData       = txData + 1;
        //发送一个字节的数据
        DL_UART_Main_transmitData(UART_0_INST, txData);

        while (dataReceived == false)
        {
            __WFE();
        }

        //延时,避免数据发送太频繁
        delay_cycles(10000);
    }
}


/*
 * uart中断处理函数
 *
 * --读取uart接收到的数据, rxData;
 * --判断接收到的数据rxData是否等于发送的数据txData
 *
 */
void UART_0_INST_IRQHandler(void)
{
    switch (DL_UART_Main_getPendingInterrupt(UART_0_INST))
    {
        case DL_UART_MAIN_IIDX_RX:
            //读取接收到的数据,存入rxData
            rxData       = DL_UART_Main_receiveDataBlocking(UART_0_INST);
            //设置数据接收的标志位,这样主函数才会发送下一个数据
            dataReceived = true;
            //判断接收到和发送的数据是否相等。正常来说,里边要增加处理的,写例程的人偷懒了:(
            while (rxData != txData)
            {
            };
            break;
        default:
            break;
    }
}

5.实验现象

MSPM0L1306例程学习-UART部分(2),MSPM0L1306,TI MSPM0 MCU,学习,mspm0l1306,电赛,LP-MSPM0L1306,单片机文章来源地址https://www.toymoban.com/news/detail-807656.html

到了这里,关于MSPM0L1306例程学习-UART部分(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Say0l的安全开发-弱口令扫描工具-My-crack【红队工具】

    终于终于,安全开发也练习一年半了,有时间完善一下项目,写写中间踩过的坑。 安全开发的系列全部都会上传至 github ,欢迎使用和 star 。 https://github.com/SAY0l/my-crack 更适合中国宝宝的弱口令扫描器 当前核心支持 ftp/mongodb/mysql/mssql/postgre/redis/ssh 的弱口令扫描 提供了编译后

    2024年02月09日
    浏览(31)
  • 【issue-halcon例程学习】ball.hdev

     检测球形焊盘的直径。 通过亮暗区域分割并将转换为最小的周围矩形来定位芯片;   shape_trans 会比 smallest_xxx 来的方便 2. 填充区域中的孔、裂缝—— fill_up / fill_up_shape   fill_up 实现对区域的完整填充;   fill_up_shape 按指定区域特征的范围填充; 3. opening_circle 进行第一轮

    2024年01月20日
    浏览(23)
  • 【FPGA学习】状态机实现UART通信

      在之前的文章中【FPGA学习】实例一、Cyclone IV串口通信(RS232)我们已经能够采用波形图的方法,实现9600bps的Uart通信。近期笔者在整理了状态机和计数器组合的设计方法以后,对状态机的设计又有了新的感悟和体会,所以又把经典的RS232协议拉出来当状态机的例子练手了哈哈

    2023年04月11日
    浏览(36)
  • arm学习串口uart数据帧传输

    main.c uart4.h uart4.c

    2024年02月12日
    浏览(26)
  • 【issue-halcon例程学习】measure_arc.hdev

     检查倒角后铸件的细长孔之间的距离。 gen_measure_arc ——采用圆弧arc作为测量区域,这是和上个例程不同的地方;   CenterRow :入参,圆弧中心的行坐标;   CenterCol :入参,圆弧中心的纵坐标;   Radius :入参,圆弧半径;   AngleStart :入参,弧度的起始角)以弧度为单位

    2024年01月24日
    浏览(23)
  • 【issue-halcon例程学习】measure_pin.hdev

     检测IC引脚。代码更多地关注测量函数的可视化情况。 disp_continue_message ——在 WindowHandle 对应区域右下角显示 Press Run (F5) to continue ;   WindowHandle :入参,文本显示的窗口句柄;   Color :入参,文本显示的颜色;   Box :入参,置true文本在白框内,反之无白框; disp_line

    2024年01月24日
    浏览(32)
  • 【issue-halcon例程学习】edge_segments.hdev

     提取连续的边缘 明确边缘检测的一般步骤:获取图像 ~ 设置ROI ~ 图像滤波 ~ 提取边缘 ~ 处理边缘 ~ 结果可视化; 基于边缘振幅和方向对图像进行分割; edges_image ——使用 Deriche、Lanser、Shen 或 Canny 过滤器提取边缘;   Image ——入参,待处理图像;   ImaAmp ——出参,边缘

    2024年01月24日
    浏览(24)
  • LV.12 D13 UART实验 学习笔记

      UART             Universal Asynchronous Receiver Transmitter 即     通用异步收发器,是一种通用的串行、异步通信总线     该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。 通信基础 - 并行和串行         并行通信:

    2024年02月06日
    浏览(24)
  • FPGA实现Aurora 8B/10B接口(5)--官方例程学习(Framing接口)

    文章目录 1、IP核定制与官方例程的生成 1.1、第一页配置:物理层以及链路层信息选择

    2024年02月09日
    浏览(25)
  • 【issue-halcon例程学习】fuzzy_measure_pin.hdev

     检查IC的引线宽度和引线距离。 模糊测量——对标准测量的一种扩展,并不意味着测量是“模糊的”,而是用 模糊隶属函数 来控制边缘的选择。所谓的模糊隶属函数,就是将边缘的特征值转换为隶属度值(我理解为权重值),基于这些隶属值做出是否选择边缘的决定,即当隶

    2024年01月24日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包