msp430g2553串口通信教程

MSP430g2553 串口通信MSP430 的不同型号,其串行通讯工作模式是一样的。以MSP430G2553 为例进行说明。 MSP430G2553 是 20 个引脚的16 位单片机。具有内置的 16 位定时器、16k 的 FLASH 和512B 的 RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个 10 位的模数(A/D)转换器。其引脚排布如图 1.1 所示。其功能表如表 1.1 所示。串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。如图 1.2 所示。图 1.2 串行通讯模块内部结构图一、UART 模式 在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。波特率的产生是在本地完成的。异步帧格式由 1 个起始位、7 或 8 个数据位、校验位(奇/偶/无) 、1 个地址位、和 1 或 2 个停止位。一般最小帧为 9 个位,最大为 13 位。图 1.1 MSP430G2553 引脚图(一)UART 的初始化单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由 SSEL1、SSEL0,以决定最终进入模块的时钟信号 BRCLK 的频率。所以配置串行通讯的第一步就是选择时钟。通过选择时钟源和波特率寄存器的数据来确定位周期。所以波特率的配置是串行通讯中最重要的一部分。波特率设置用三个寄存器实现:UxBR0(选择控制器 0):波特率发生器分频系数低 8 位。UxBR1(选择控制器 1):波特率发生器分频系数高 8 位。UxMCTL数据传输的格式,以及数据传输的模式是通过配置控制寄存器 UCTL 来进行设置。接收控制部分和发送控制部分。首先需要串行口进行配置、使能以及开启中断。串口接收数据一般采用中断方式,发送数据采用主动发送。当接收到一个完整的数据,产生一个信号:URXIFG0=1 (类似于 51 单片机的接收中断标志位) ,表示接收完整的数据。当数据正在发送中,UTXIFG0=1 ,此时不能再发送数据,必须等当前数据发送完毕(UTXIFG0=0)才能进行发送。程序实例如下:Void UART_init(){WDTCTL = WDTPW + WDTHOLD; P1SEL|= 0 x06; //I/O 口的功能寄存器配置。为 1 时作为模块输出或者输出,0为端口输入或者输出。配置 P1.1,P1.2 为串行口。P2DIR=0 x04; //串口发送端为输出,串口接收端为输入。0 为输入,1 为输出U0CTL |= CHAR; // 配置控制寄存器,数据类型为 8 位。U0TCTL |= SSEL0; // 选择时钟 UCLK= ACLK。U0BR0 = 0 x45; // 分频系数的高 8 位,8MHz 时钟下波特率为 115200U0BR1 = 0 x00; // 分频系数的低 8 位。U0MCTL = 0 x00; // 波特率的调整。U0CTL // 判断发送缓冲区是否为空。TXBUF0 = RXBUF0; // 将数据发送到串口。} 二、SPI 模式 USTAR 下的 SPI 模式有如下特点:1、SPI 模式支持 3 线和 4 线模式;2、支持主机与从机模式;3、接受和发送有各自独立的发送移位寄存器和缓冲器;4、接受和发送都有独立的中断能力;5、移位时钟的极性和相位可编程;6、字符长度可以是 7 位或者 8 位。SPI 工作在全双工下,即主机发送的同时也接收数据,传输的速率由编程决定。4 线SPI 模式用附加数据线,允许从机数据的发送和接收。其信号如下: SIMO:从进主出,主机模式下,数据输出;从机模式下,数据输入。SOMI:从出主进,主机模式下,数据输入,从机模式下,数据输出。UCLK:USART SPI 模式时钟,信号有主机输出,从机输入。CLK 时钟只能由主机提供。STE:从机模式发送接收允许控制脚,用于 4 线模式。(一)SPI 初始化SPI 当中不需要波特率调整,所以 UxMCTL=0 x0000,SPI 的初始化及其复位和UART 公用一套寄存器。在初始化或者重新配置 USART 的 SPI 时,必须按照以下顺序进行:1、UxCTL 寄存器的第 0 位 SWRST 置位;2、在 SWRST 置位的条件下,初始化所有的 SPI 寄存器,包括 UxCTL 寄存器;3、通过置位模块使能寄存器 MEx 的 URXEx 和 UTXEx 位使能 SPI 的接受和发送使能模块;4、通过软件复位 UxCTL 寄存器的第 0 位 SWRST;5、通过中断使能寄存器 IEx 的 URXIEx 和 UTXIEx 来使能发送和接受中断。void main(void){WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗。P1SEL |= 0 x07; // 配置 P1.0、P1.1 、P1.2 模块输出。 UCTL = CHAR + SYNC + MM; // 工作模式以及数据格式的设置,CHAR 为 1 时为8-bit,0 时为 7 位, SYNC 控制通讯模式,1 为SPI 模式,0 为 UART 模式。UTCTL = CKPL + STC+ SSEL0+ SSEL1; // 置位 SSEL0 与 SSEL1 时钟的类型,11 则 为 SMCLK;CKPL 为时钟极性控制位,0 时 UCLKI 信号与 UCLK 信号极性相同,1 时 UCLKI 信号与 UCLK 信号极性相反。UBR0 = 0 x02; // SPICLK = SMCLK/2,2 分频。波特率的设置。UBR1 = 0 x00;UMCTL = 0 x00; //SPI 通讯中,不需要使用波特率调整器。UCTL // 向 P1OUT 送入数据}__interrupt void SPI0_tx (void){unsigned int i;i = P1IN;i = i >> 4;TXBUF0 = i; // 数据发送。}三、寄存器及其功能通信模块寄存器如下:表 3.1 USART0 的寄存器寄存器 缩写 读写类型 地址 初始状态控制寄存器 U0CTL 读/写 070H P

msp430g2553串口接受数据_msp430g2553串口通信教程相关推荐

  1. msp430g2553串口接受数据_MSP430G2553串口通信

    MSP430的不同型号,其串行通讯工作模式是一样的.以MSP430G2553为例进行说明.MSP430G2553是20个引脚的16位单片机.具有内置的16位定时器.16k的FLASH和512B的RAM ...

  2. msp430g2553串口接受数据_MSP430G2553串口通讯 发送接收

    数据发送代码: void UartPutchar(unsigned char c) { while(!(IFG2 & UCA0TXIFG));  //待发送为空 UCA0TXBUF=c; IF ...

  3. msp430g2553串口接受数据_msp430g2553的串口发送程序

    #include #include #include #define uint unsigned int #define LCD_EN_PORT P1OUT    //以下2个要设为同一个口 #def ...

  4. msp430g2553串口接受数据_详细解读:MSP430G2553单片机串口通信

    MSP430的不同型号,其串行通讯工作模式是一样的.以MSP430G2553为例进行说明.MSP430G2553是20个引脚的16位单片机.具有内置的16位定时器.16k的FLASH和512B的RAM ...

  5. linux驱动向不同串口发数据,Linux串口(serial、uart)驱动程序设计

    一.核心数据结构 串口驱动有3个核心数据结构,它们都定义在 1.uart_driver uart_driver包含了串口设备名.串口驱动名.主次设备号.串口控制台(可选)等信息,还封装了tty_dri ...

  6. 【嵌入式】——串口实验——实现芯片串口收发数据,按键中断串口发送数据,串口接收数据中断来控制LED亮/灭

    实验目的: 实现芯片串口收发数据,按键中断串口发送数据:按下按键,向串口发送数据,并通过虚拟终端显示出来: 串口接收数据中断来控制LED亮/灭:通过串口助手向MCU发送数据,"A" ...

  7. msp430g2553串口接受数据_使用UART与PC通信实现msp430g2553单片机超声波测距示例

    #include long current_time;//最近一次测得时间 /*MyPro*/ #define LED_1 BIT0 #define SW_2 BIT3 #define TA1_1 B ...

  8. openmv串口发送数据_OpenMV串口发送图片

    OpenMV串口发送图片# Hello World Example # # Welcome to the OpenMV IDE! Click on the green run arrow button ...

  9. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

最新文章

  1. java点到直线的投影点到经纬度_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...
  2. 今年跳槽可以再等等。
  3. linux 无法访问docker mysql8_Apple M1芯片不支持Docker?Docker:正在努力适配
  4. 微服务跨数据库联合查询_MySQL数据库联合查询
  5. 一定要多读多记FreeEIM
  6. [Java] 蓝桥杯ALGO-11 算法训练 瓷砖铺放
  7. Bluebird-Collections
  8. linux下MySQL安装及设置
  9. c语言dnf脚本源码,dnf纯脚本源码贝贝
  10. 用c语言编程解决数学实际问题,运用C语言解决爱因斯坦的数学题
  11. android虚拟机工作模式,android虚拟机也能用命令行模式
  12. FM收音机入门,以及Python实现FM调制解调
  13. 美国佐治亚大学卢国玉老师组招收计算机视觉方向全奖博士生
  14. opencv-python 绘制图像直方图及直方图均衡化
  15. 今日金融词汇--- 高利润模式
  16. appdesigner灯控按钮以及开关按钮的使用
  17. codeblocks下载及安装包括程序示例
  18. linux dlna 客户端,UPNP/DLNA(客户端)播放器推荐?
  19. 符号- 作用 计算机,符号在人工智能中的作用
  20. JavaSE 笔记(五)重制版

热门文章

  1. 基于Jsp+Servlet的图书商城
  2. CentOS 7 gcc、g++、gdb、zhs和oh-my-zsh安装配置 一条龙
  3. 关于小米路由器升级系统保留SSH的简单方法(RedmiAX5实验)
  4. java读写德卡数据_深圳德卡D3-U读写卡器windows(Java),linux(C)驱动开发 | 学步园
  5. python 与设计模式 ——工厂与单例
  6. Cloud一分钟 |小米与美图战略合作;新东方在线通过港交所上市聆讯;工信部审批首个“.cloud”顶级域名...
  7. 安装、升级pip,但是python -m pip install --upgrade pip报错的解决办法。
  8. 10.2.0.4 RAC hang住的分析-从ash基表数据查出RLM$EVTCLEANUP job异常
  9. 《Synchronous Double-channel Recurrent Network for Aspect-Opinion Pair Extraction》阅读笔记
  10. 地表反射率影响因素_常被忽视的地面反射率对光伏设计的影响