MSP430FR5739串口程序

今天急着用这个片子的串口,匆忙中调试串口也话费了一段时间,在网上下了一个程序,忽然就把所有问题搞清楚了,只是中断就看着头文件中寄存器写的,虽然通讯正常,不过不确定有没有写错。代码如下:

#include <msp430fr5739.h>

void Uart_Init(void)
{
P2SEL1 |= BIT0 + BIT1;
P2SEL0
&= ~(BIT0 + BIT1); // P2.0,1 = USART0 TXD/RXD 选择端口用作接收和发送端口
UCA0CTL1 |=
UCSWRST;
UCA0CTL1 = UCSSEL_2; // Set SMCLK as UCLk

UCA0BR0 = 52 ; // 9600 baud
//
8000000/(9600*16) - INT(8000000/(9600*16))=0.083
UCA0BR1 = 0;
//
UCBRFx = 1, UCBRSx = 0x49, UCOS16 = 1 (Refer User Guide)
UCA0MCTLW = 0x4911
;
UCA0CTL1
&= ~UCSWRST; // release from reset
UCA0IE |=
UCRXIE; // 使能 USART0 RX 中断

}
/**********************************************************************
*
函数名称: Uart_Put_Char()
* 功能描述: 通过UART向PC机发送一个字符
* 输入参数: c
* 返回参数:

**********************************************************************/

void Uart_Put_Char(unsigned char c)
{
while
(!(UCA0IFG&UCTXIFG)); //等待发送寄存器为空
UCA0TXBUF = c;

}
/**********************************************************************
*
函数名称: Uart_Put_string
* 功能描述: 通过UART发送字符串
* 输入参数: ptr--指向发送字符串的指针
*
返回参数:

**********************************************************************/

void Uart_Put_string(unsigned char *ptr)
{
while(*ptr != ‘\0‘)

{
Uart_Put_Char(*ptr++); //
发送数据
}

}
/**********************************************************************
*
函数名称: Uart_Char_Num
* 功能描述: 通过UART发送字符串(特定个数的字符串)
* 输入参数: ulCount
字符串的个数
* 返回参数:

**********************************************************************/

void Uart_Char_Num( unsigned char *ptr, unsigned long ulCount )
{

while(ulCount--)
{

Uart_Put_Char(*ptr ++);
}
while
(!(UCA0IFG&UCTXIFG));
UCA0TXBUF = ‘\n‘;
//发送换行指令

}
void delay()
{
unsigned int i=50000;

while(i--);
}
void main( void )
{
// Stop watchdog timer to
prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
CSCTL0_H = 0xA5;
// Unlock register
CSCTL1 |= DCOFSEL0 + DCOFSEL1;
// Set max. DCO setting
CSCTL2 = SELA_1 + SELS_3 + SELM_3; //
set ACLK = vlo; MCLK = DCO
CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0; // set
all dividers
CSCTL0_H = 0x01; // Lock
Register
Uart_Init();
_EINT();
while(1)
{

delay();
delay();
delay();
delay();

Uart_Put_string("123456789\r\n");
}

}

#pragma vector = USCI_A0_VECTOR
__interrupt void
USCI_A0_ISR(void)
{
UCA0IFG &=~ UCRXIFG; //
Clear interrupt
while (!(UCA0IFG&UCTXIFG));
UCA0TXBUF =
UCA0RXBUF;
}

MSP430FR5739串口程序,布布扣,bubuko.com

时间: 2024-11-01 19:22:50

MSP430FR5739串口程序的相关文章

Qt (6) -- Qt5.5.1实现通用串口程序

最近教研室在做高速相机,通过图像采集卡和自己做的高速相机链接,从而采集和收集图像.图像采集卡和高速相机是通过Cameralink连接,其中也包含了相机和图像采集卡之间的串口的硬件借口,在老师的要求下,实现了两种串口程序,一种是通过cameralink的API实现串口数据的传输,一种则是通过USB转RS422的转接器,实现对高速相机的寄存器的读写.本文主要介绍了通过Qt的QSerialPort和QSerialPortInfo两个类,实现的串口程序. 本文采用的的开发环境是VS2010+Qt5.5.

Delphi 使用 SPcomm 调试串口程序出现总是在程序断开的时候,才发送指令的问题。

问题如上, 在与嵌入式程序串口程序通讯的时候, 总是出现如上问题, 造成的原因把下面的True改成false就可以了. 下图Spcomm的属性页,几个True全改成False再试试

Android蓝牙串口程序开发

本文主要介绍了针对android的蓝牙串口上位机开发. 一.帧定义 android客户端按照一定的数据帧格式通过蓝牙串口发送数据到连接到MCU的蓝牙从机,MCU接收到数据后,按照帧格式的定义,接收数据帧,并解析数据帧,得到需要的数据. android客户端按照以下帧格式来发送和接收数据. 1.1客户端发送的数据帧内容 帧校验的和是从帧长开始到帧校验前所有数据的和对256取余.即sum%256. pitch roll yaw数据各16位,由高低8位组成.MCU接收数据时需要将其再复合成一个16位数

Java编写串口程序

用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\extCopy rxtxSerial.dll ---> <JAVA_HOME>\jre\binCopy rxtxParallel.dll ---> <JAVA_HOME>

【转】C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁

第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问题.我想只有一半的人真的解决了.另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了. 你看到我的文章,就放心吧,这问题有救了.我们先回顾一下上一篇中的代码 [c-sharp] view plaincopy void comm_DataReceived(object sender, Se

C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?

C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ? 标签: c#objectuibyte通讯.net 2010-05-19 08:43 55212人阅读 评论(188) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问

Delphi 使用串口模拟工具进行串口程序开发调试

版权声明:本文为博主原创文章,如需转载请注明出处及作者. 本文由小李专栏原创,转载需注明出处:[http://blog.csdn.net/softwave/article/details/8907599] 最近在做一个项目,要求使用Java对磅房的小磅数据进行读取,这就要求使用Java与串口进行通信.串口的Java代码已经开发完毕,但又不能总在生产现场调试程序,所以如何在自己的笔记本电脑上模拟串口数据就成了当务之急.托Google的福,找到了两个小工具:VSPD和串口调试助手.下面简单介绍一下如

linux c串口程序

以下是一个典型的串口初始化程序: #include "uart.h"#include <stdio.h> #include <unistd.h> #include <fcntl.h>#include <termios.h>  #include <errno.h> int open_uart(char *Dev){ int fd=open(Dev,O_RDWR|O_NOCTTY|O_NDELAY);   //1 if(-1==f

串口程序.资料

1.Win32下串口读写设置操作 - CSDN博客.html(http://blog.csdn.net/dahan_wangtao/article/details/1621212) 2.网页内容拷贝: win32下串口读写设置操作 转载 2007年05月22日 17:15:00 标签: null / 通讯 / signal / character / struct / buffer 3311 在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信方便易行