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串口程序的更多相关文章
- C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?
第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问 ...
- Delphi 使用串口模拟工具进行串口程序开发调试
版权声明:本文为博主原创文章,如需转载请注明出处及作者. 本文由小李专栏原创,转载需注明出处:[http://blog.csdn.net/softwave/article/details/8907 ...
- [15单片机] STC15F104W开发入门及模拟串口程序
STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC ...
- Java编写串口程序
用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...
- Delphi 使用 SPcomm 调试串口程序出现总是在程序断开的时候,才发送指令的问题。
问题如上, 在与嵌入式程序串口程序通讯的时候, 总是出现如上问题, 造成的原因把下面的True改成false就可以了. 下图Spcomm的属性页,几个True全改成False再试试
- STM32串口程序的一般配置方法
#include "stm32f10x.h" /************************************************ 该程序讲解串口程序的一般配置方法: ...
- Android蓝牙串口程序开发
本文主要介绍了针对android的蓝牙串口上位机开发. 程序下载地址:点击打开链接 一.帧定义 androidclient依照一定的数据帧格式通过蓝牙串口发送数据到连接到MCU的蓝牙从机.MCU接收到 ...
- VS上利用C#实现一个简单的串口程序记录
一.背景 工作上需要利用串口往下位机写入数据,VC太老,正好借此机会来熟悉一直很想接触的VS之C#. 感谢Tony托尼哥的串口通信代码,感谢梦真的C#的技术支持. 二.正文 1.项目架构:(以我现有的 ...
- 让你的ubuntu串口程序可以直接读写串口
默认的情况下,如果我们使用一般用户去打开串口的话会出现 open failed 的错误 这个时候你可以在执行打开串口时加一个sudo,但每次这么需要这么干实在是太麻烦了. 这有一个方法可以跳过以超级用 ...
随机推荐
- 一看便知_linux安装redis和调试
rpm包下载地址: http://vault.centos.org/6.3/os/x86_64/Packages/1.进入目录,解压文件 # tar -zxvf redis-3 ...
- 我要谈对象之——JavaScript面向对象(1)
任何语言里都有面向对象,除了个别的.今天,我要说的是javascript中面向对象. 什么是面向对象? 计算机中的一切算法和逻辑都是源于生活中的,对象,这个抽象的概念并不是男同胞理解的妹子哈,对象,无 ...
- arguments的理解
(function(){ return typeof arguments; })(); 无聊的时候看看网上的面试题.个人认为通过面试题可以对某个知识点能够更加认识,踩过坑才会明白坑是有多大.代码中经常 ...
- 转 unity 优化
最近研究U3D开发,个人认为,精通一种新的技术,最快最好的方法就是看它的document,而且个人习惯不喜欢看中文的资料,原汁原味的东西是最正确的,一翻译过来很多东西就都不那么准确了.于是通读了uni ...
- Nginx+Tomcat发布时不间断服务的提供
原理 1.使用Nginx反向代理事项负载均衡,至少两个Tomcat(tomcatA+TomcatB)同时提供服务. 2.发布时配置Nginx的nginx.conf,只让其中的TomcatA临时提供所有 ...
- 解决IIS上无法添加.NET用户的问题
最近开发了一个简单的管理后台,后台用户管理都用的是AspNetSqlMembershipProvider这一套框架,添加和删除用户的功能在开发阶段通过ASP.NET网站管理工具完成. 部署到服务器上时 ...
- 基础笔记12(socket,url网络通信)
进一步深入socket 1.网络通信条件: .IP地址,可用主机名. .传输数据时将不用的应用程序通过数字标识区分开来,这种标识称为逻辑端口,也称端口.(0-65535端口,一般系统预留0-1024) ...
- Deep Learning 18:DBM的学习及练习_读论文“Deep Boltzmann Machines”的笔记
前言 论文“Deep Boltzmann Machines”是Geoffrey Hinton和他的大牛学生Ruslan Salakhutdinov在论文“Reducing the Dimensiona ...
- Android Studio安装和配置(个人研究,有错请指导)
安装Android Studio的原因:公司有app开发者,然而公司没有测试,只好互相测试,本人并没有接触过app开发,纯小白: 自己试着安装了一下Android Studio来这里记录并分享遇到的问 ...
- arguments.callee的用法
argument为函数内部对象,包含传入函数的所有参数,arguments.callee代表函数名,多用于递归调用,防止函数执行与函数名紧紧耦合的现象,对于没有函数名的匿名函数也非常起作用.举例如下: ...