UART串行通信模式
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串行通信模式相关推荐
- DY-SV17F语音播放模块应用篇二 【UART 串口模式】
UART 串口模式 是采用波特率为9600的全双工串口通信. 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制. 从机不会主动发起通信,所有通信都是由主机发起. 串口模式接线图: 使用 ...
- 单片机 STC15W204S-35I SOP16 - UART,模式 1,使用定时器 2 作为波特率发生器
文章目录 UART 原理图 模式 1 下载.测试 参考 UART 原理图 模式 1 配置: 1 个起始位, 8 位数据, 1 个停止位: 使用定时器 2 作为波特率发生器: 允许接收.发送请求中断: ...
- IIC、SPI、UART串行通信以及同步/异步通信学习
一.IIC 连接线:VCC.GND.SDA.SCL. 半双工同步通信.MSB. 速率:100Kbps.400Kbps.3.4Mbps. 数据采集:SCL为高电平期间采集,因此SDA必须在SCL为低期间 ...
- STM32 LCD12864 串行通信模式 (从原理让你理解)
lcd12864简介 带中文字库的128X64是一种具有4位/8位并行.2线或3线串行多种接口方式,内部含有国标一级.二级简体中文字库的点阵图形液晶显示模块:其显示分辨率为128×64,内置8192个 ...
- 【UART】USCI:UART模式
msp430f5419/38学习笔记之USCI:UART模式 (2011-11-07 19:23:57) [转] 原文: http://blog.sina.com.cn/s/blog_8927ef7d ...
- 基于SYSBIOS GIO接口的uart通信DMA模式
基于SYSBIOS GIO接口的uart通信DMA模式(不定长接收) 硬件:TMS320C6748 (创龙开发板) bsp: bios_6_37_03_30 相对裸机版的Uart dma配置,SYSB ...
- UART串口通信浅谈之(一)--基础概述
通信按照传统的理解就是信息的传输与交换.UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是单片机最常用的一种通信技术,通常用 ...
- MSP430F5529 DriverLib 库函数学习笔记(四)UART通信
目录 硬知识 USCI通信模块 USCI的UART模式 1. USCI初始化和复位 2. 异步通信字符格式 3. 异步多机通信模式 4. 自动波特率检测 5. IrDA编码和解码 6. 自动错误检测 ...
- 串口通讯基础及S3C2410 UART控制器
数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送.它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合. 串行通信:是指利用一 ...
最新文章
- golang语言学习第三课 条件语句
- virtualbox vboxmanage命令
- mysql sql%rowcount_sql%rowcount 返回影响行数
- linux非阻塞输入函数,Linux fcntl函数设置阻塞与非阻塞
- 机器学习理论与实战:逻辑回归
- matlab表示开方,在MATLAB内置功能中,‘sqrt(a)’表示() 答案:对a开方
- 抖音时钟js css,JS+CSS3实现时钟效果(抖音)
- php验证码汉字显示音节,普通话拼音PHP 标调音节 1403个
- 西门子1200控制V90伺服,西门子1200通过PN通讯控制V90伺服,程序控制采用FB285功能块
- 卫星影像,区划矢量,DEM....教你如何将各种遥感数据收入囊中
- 如何用Python找回微信撤回信息
- Kafka(八)----Kafka Tool 2.0.7(最新)版本超详细使用指北
- 微信翻译如何使用?在微信中如何进行中翻译英
- ECCV 2022 | 新方案: 先剪枝再蒸馏
- 微信小程序开发实战(9):单行输入和多行输入组件
- OpenCV色彩空间类型
- 技术分享 | 无人机集群——分布式控制算法
- spring cloud 之 Ribbon
- hdu1256-画8
- 云计算具有什么平台_云计算?通俗易懂点讲云计算是什么意思?