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. 2014.8.30.ref,out,params,enum,递归
  2. Dropbox用户数增速恢复:突破5亿 9个月增加1亿
  3. iBatis.Net(C#)SQL数据映射
  4. 把linux制作成内存系统,把内存当硬盘,提速你的linux系统
  5. IIS7.X上传文件大小受限制解决方法
  6. Google 与微软的浏览器之争
  7. 二层交换:网桥(交换机)
  8. java工程师占比_2020年Java工程师就业分析
  9. 云南满泽生物科技有限公司 满泽玛卡玛咖精片 东革阿里 奶昔
  10. 历届二级c语言pdf,国家计算机二级C语言历年真题与答案.pdf
  11. 机器学习期末复习题题库-单项选择题
  12. 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念
  13. matlab中得到透明背景图片的方法,如何在Matlab中得到透明背景的图片?
  14. WIFI通信-笔记整理
  15. java的jsf是什么_什么是 JSF(Java Server Faces)
  16. python代码画樱花-如何用Python代码实现樱花树效果
  17. RIDE 图标点击没反应
  18. 在机顶盒上被移除adb后恢复的办法
  19. 淘宝店铺如何做补单计划?
  20. js 数字转人民币大写

热门文章

  1. A guided tour of Kerberos: Tutorial
  2. Vim与Python真乃天作之和
  3. 蓝桥杯Python初级组测试题之Turtle画图
  4. Flink-clickhousesink
  5. Win10 如何使用DISM命令用本地镜像来修复系统损坏文件
  6. tensorflow学习math_ops(一)
  7. DNA存储:这些公司正在开启数据存储的未来
  8. mysql中locate的用法
  9. 对植物大战僵尸的数据修改
  10. C语言学习笔记——调用函数时提示警告