UART串行通信模式

  • What
  • How
    • 举例
  • Task
    • sao话一下

What

  单片机可以与其他机器(像上位机,我们所用的上位机就是我们的PC)进行数据之间的传输也就是通信。而通信具有不同的通信模式,这一节主要讨论单片机(MSP430)的UART通信模式。

MSP430G2553只有一个USCI_A0和USCI_B0模块
  UART通信模式是一种异步串行通信模式。所谓异步,就是收发双方的时钟并不同步,发送方以一定的方式发出数据,接收方也以类似的方式接收数据,对数据的传输及发送时间没有要求,而同步通信模块需要收发双方时钟相同,接收和发送有时钟要求;所谓串行通信模式直观理解就是通信只有一条道路,数据位按顺序依次通过,而并行通信模式就是有多条道路,数据位并排一起过去。
  UART典型数据格式如下

  其他内容参考手册相关部分内容。再写我怕写错了。

How


当UCSYNC位被清零时USCI就选择了UART模式。
管脚配置
时钟源配置
时钟选择
波特率配置
中断配置,中断函数编写
LaunchPad在进行串口通信时需要将RXD和TXD两列的跳线帽横插。

举例

串口(使用USART2,TX为PA2,RX为PA3),发送0x55显示在上位机串口助手上(波特率9600)

#include "io430.h"
void Delay_ms(unsigned cnt)
{unsigned int i,j;for(j=0;j<cnt;j++){i=1000/6;while(i--);}
}
void InitUART(void)
{//复位USCI_AxUCA0CTL1|=UCSWRST;//选择USCI_Ax为UART模式UCA0CTL0&=~UCSYNC;//配置UART时钟源为SMCLKUCA0CTL1|=UCSSEL1;//配置波特率为9600UCA0BR0=104;UCA0BR1=0;UCA0MCTL=1<<1;//使能端口复用P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;//清除复位,使能UARTUCA0CTL1&=~UCSWRST;
}
void InitSystemClock(void)
{//配置DCO为1MHzDCOCTL=CALDCO_1MHZ;BCSCTL1=CALBC1_1MHZ;//配置SMCLK的时钟源为DCOBCSCTL2&=~SELS;//设置SMCLK的分频系数为1BCSCTL2&=~(DIVS0|DIVS1);
}
int main( void )
{// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;InitSystemClock();InitUART();while(1){UCA0TXBUF=0x55;Delay_ms(1000);}
}

UART串口通信发送0x55至上位机

Task

将接收的上位机数据取反后再发送到串口助手上。(波特率9600)

#include "io430.h"
#include "stdint.h"
/*      @fn:    void InitUART(void)@brief: 初始化串口,包括设置波特率,数据位,校验位等@para:  none@return:        none@comment:       初始化串口
*/
void InitUART(void)
{//复位USCI_AxUCA0CTL1|=UCSWRST;//选择USCI_Ax为UART模式UCA0CTL0&=~UCSYNC;//配置UART时钟源为SMCLKUCA0CTL1|=UCSSEL1;//配置波特率为9600UCA0BR0=104;UCA0BR1=0;UCA0MCTL=1<<1;//使能端口复用P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;//清除复位,使能UARTUCA0CTL1&=~UCSWRST;//接收中断启用IE2|=UCA0RXIE;//清空接收中断标志位IFG2&=~UCA0RXIFG;
}
/*      @fn:    void InitSystemClock(void)@brief: 初始化系统时钟@para:  none@return:        none@comment:       初始化系统时钟
*/
void InitSystemClock(void)
{//配置DCO为1MHzDCOCTL=CALDCO_1MHZ;BCSCTL1=CALBC1_1MHZ;//配置SMCLK的时钟源为DCOBCSCTL2&=~SELS;//设置SMCLK的分频系数为1BCSCTL2&=~(DIVS0|DIVS1);
}int main( void )
{// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;InitSystemClock();InitUART();P1DIR|=BIT0;//用于查看程序是否正常运行P1OUT|=BIT0;__bis_SR_register(LPM0_bits+GIE);
}#pragma vector=USCIAB0RX_VECTOR
__interrupt void UART_Receive_ISR(void)
{while (!(IFG2&UCA0TXIFG));                // 检测发送是否准备好UCA0TXBUF = ~UCA0RXBUF;                    // 将接收数据发送给主机
}

UART接收取反发送

sao话一下

为众人抱薪者,不可使其扼于风雪。为自由开路者,不可使其困于荆棘。即使我们不是抱薪开路之人,也应该多一些善良。

UART串行通信模式相关推荐

  1. DY-SV17F语音播放模块应用篇二 【UART 串口模式】

    UART 串口模式 是采用波特率为9600的全双工串口通信. 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制. 从机不会主动发起通信,所有通信都是由主机发起. 串口模式接线图: 使用 ...

  2. 单片机 STC15W204S-35I SOP16 - UART,模式 1,使用定时器 2 作为波特率发生器

    文章目录 UART 原理图 模式 1 下载.测试 参考 UART 原理图 模式 1 配置: 1 个起始位, 8 位数据, 1 个停止位: 使用定时器 2 作为波特率发生器: 允许接收.发送请求中断: ...

  3. IIC、SPI、UART串行通信以及同步/异步通信学习

    一.IIC 连接线:VCC.GND.SDA.SCL. 半双工同步通信.MSB. 速率:100Kbps.400Kbps.3.4Mbps. 数据采集:SCL为高电平期间采集,因此SDA必须在SCL为低期间 ...

  4. STM32 LCD12864 串行通信模式 (从原理让你理解)

    lcd12864简介 带中文字库的128X64是一种具有4位/8位并行.2线或3线串行多种接口方式,内部含有国标一级.二级简体中文字库的点阵图形液晶显示模块:其显示分辨率为128×64,内置8192个 ...

  5. 【UART】USCI:UART模式

    msp430f5419/38学习笔记之USCI:UART模式 (2011-11-07 19:23:57) [转] 原文: http://blog.sina.com.cn/s/blog_8927ef7d ...

  6. 基于SYSBIOS GIO接口的uart通信DMA模式

    基于SYSBIOS GIO接口的uart通信DMA模式(不定长接收) 硬件:TMS320C6748 (创龙开发板) bsp: bios_6_37_03_30 相对裸机版的Uart dma配置,SYSB ...

  7. UART串口通信浅谈之(一)--基础概述

    通信按照传统的理解就是信息的传输与交换.UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是单片机最常用的一种通信技术,通常用 ...

  8. MSP430F5529 DriverLib 库函数学习笔记(四)UART通信

    目录 硬知识 USCI通信模块 USCI的UART模式 1. USCI初始化和复位 2. 异步通信字符格式 3. 异步多机通信模式 4. 自动波特率检测 5. IrDA编码和解码 6. 自动错误检测 ...

  9. 串口通讯基础及S3C2410 UART控制器

    数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送.它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合. 串行通信:是指利用一 ...

最新文章

  1. golang语言学习第三课 条件语句
  2. virtualbox vboxmanage命令
  3. mysql sql%rowcount_sql%rowcount 返回影响行数
  4. linux非阻塞输入函数,Linux fcntl函数设置阻塞与非阻塞
  5. 机器学习理论与实战:逻辑回归
  6. matlab表示开方,在MATLAB内置功能中,‘sqrt(a)’表示() 答案:对a开方
  7. 抖音时钟js css,JS+CSS3实现时钟效果(抖音)
  8. php验证码汉字显示音节,普通话拼音PHP 标调音节 1403个
  9. 西门子1200控制V90伺服,西门子1200通过PN通讯控制V90伺服,程序控制采用FB285功能块
  10. 卫星影像,区划矢量,DEM....教你如何将各种遥感数据收入囊中
  11. 如何用Python找回微信撤回信息
  12. Kafka(八)----Kafka Tool 2.0.7(最新)版本超详细使用指北
  13. 微信翻译如何使用?在微信中如何进行中翻译英
  14. ECCV 2022 | 新方案: 先剪枝再蒸馏
  15. 微信小程序开发实战(9):单行输入和多行输入组件
  16. OpenCV色彩空间类型
  17. 技术分享 | 无人机集群——分布式控制算法
  18. spring cloud 之 Ribbon
  19. hdu1256-画8
  20. 云计算具有什么平台_云计算?通俗易懂点讲云计算是什么意思?

热门文章

  1. 4G LTE 频率表
  2. 使用ShareSDK集成分享框架
  3. GIS电子地图定制开发技术
  4. 第五讲-Docker 镜像(image)
  5. 我的物联网项目(十六) 项目工程
  6. 深入理解awgn函数如何向信号中添加高斯白噪声
  7. qmainwindow 背景充电_Qt 设置背景图片(背景图片可随意拉伸)
  8. 小鸟伏特加怎么用计算机,小鸟伏特加什么意思?网络用语小鸟伏特加什么梗?...
  9. 数据分析入门——Matplotlib数据可视化
  10. 超参数调试、Batch正则化