MSP430 串口初始化,及串口操作

#include  <msp430x14x.h> 

/*
    关于UART0串口的配置,及操作函数说明
*/

/* 一、uart0初始化*/
void uart0_idev_init(void)
{
        P3SEL  |= BIT4  + BIT5;     // 1. 选择P3.4和P3.5做UART0通信端口
        ME1    |= UTXE0 + URXE0;    // 2. 使能USART0的发送和接受
        UCTL0  |= CHAR;             // 3. 选择8位字符

        UTCTL0 |= SSEL0;            // 4. 选择时钟源, ACLK :SSEL0
                                    //               SMCLK : SSEL1

        UBR00   = 0x03;             // 5. 波特率  32767HZ: 9600
        UBR10   = 0x00;             //
        UMCTL0  = 0x4A;             //   Modulation
        UCTL0  &= ~SWRST;           // 6. 初始化UART状态机
        IE1    |= URXIE0;           // 7. 使能USART0的接收中断
}

/* 二、uart0发送一个byte*/
void uart0_send_byte(BYTE dat)
{

    while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
    TXBUF0  = dat;
}

/* 三、从 uart0 RXBUF0中读取一个byte*/
INT8U uart0_rec(void)
{
    return RXBUF0;
} 

/* 四、uart1串口中断处理函数*/
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{

}

/*
    关于UART2串口的配置,及操作函数说明
*/

/* 一. uart1初始化*/
void uart1_idev_init(void)
{
  P3SEL  |= BIT6 + BIT7;     // 1. 将P3.6,P3.7选做UART1的通信端口
  ME2    |= UTXE1 + URXE1;   // 2. 使能USART0的发送和接受
  UCTL1  |= CHAR;            // 3. 选择8位字符

  UTCTL1 |= SSEL0;            // 4. 选择时钟源, ACLK :SSEL0
                              //              SMCLK : SSEL1

  UBR01     = 0x03;           // 5. 波特率  32767HZ: 9600
  UBR11     = 0x00;           //
  UMCTL1    = 0x4A;           // Modulation
  UCTL1    &= ~SWRST;         // 6. 初始化UART状态机
  IE2    |= URXIE1;           // 7. 使能USART1的接收中断
}

/* 二、uart1发送一个byte*/
void uart1_send_byte(BYTE dat)
{

    while (!(IFG2 & UTXIFG1));      // USART0 TX buffer ready?
    TXBUF1  = dat;
}

/* 三、从 uart1 RXBUF1中读取一个byte*/
INT8U uart1_rec(void)
{
    return RXBUF1;
} 

/* 四、uart1串口中断处理函数*/
#pragma vector=UART1RX_VECTOR
__interrupt void usart1_rx (void)
{

}
时间: 2024-10-28 16:07:40

MSP430 串口初始化,及串口操作的相关文章

串口驱动程序设计详解---串口初始化(上)

TTY驱动程序架构: 1. TTY概念解析 1.1 /dev/ttySCA0 1.2 /dev/tty1-n 1.3 /dev/console 在linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备. . 串口终端(/dev/ttyS*) 串口终端是使用计算机串口连接的终端设备.Linux把每个串行端口都看做是一个字符设备.这些串行端口所对应的设备名称是/dev/ttySAC*; .控制台终端(/dev/console) 在Linux系统中,计算机的输出

u-boot分析(八)----串口初始化

u-boot分析(八) 上篇博文我们按照210的启动流程,分析到了内存初始化,今天我们继续按照u-boot的启动流程对串口的初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.        210芯片手册:S5PV210_UM_REV1

bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理

bootloader功能介绍 初始化开发板上主要硬件(时钟,内存,硬盘), 把操作系统从硬盘拷贝到内存,然后让cpu跳转到内存中执行操作系统. boot阶段 1.关闭影响CPU正常执行的外设 -关闭看门狗(watch dog)   WTCON 0xE2700000 -关闭中断 CPSR I和F位设置为1,关闭,不响应任何中断. 2.初始化时钟 -倍频到1Ghz,为外设分频 *串口驱动 3.初始化内存控制器,DDRAM -验证内存,往里面写一个值,然后再读出来 4.初始化硬盘,nand Flash

C# 串口初始化

C# 串口初始化方法之一.完整例程中定义了多个串口,程序运行初始会从配置文件加载串口设置并批量初始化串口. ... using System.Text.RegularExpressions; ... //Example, InitPort(gdmPort, 2, "115200,N,8,1") private void InitPort( System.IO.Ports.SerialPort _seriPort, int _com, string _setting) {     str

【转】搞定单片机多字节串口接收(串口多字节接收发送的高阶研究)

搞定单片机多字节串口接收(串口多字节接收发送的高阶研究) 原文地址:http://bbs.ednchina.com/BLOG_ARTICLE_3007162.HTM 工作了一年多,写了不少单片机串口程序.感觉串口多字节接收部分的逻辑相对于配置寄存器跟串口回复来说,是有点难度的——寄存器配置基本上都是死的,串口回复多字节跟回复一字节只是多了一个循环. 串口接收程序是基于串口中断的,单片机的串口每次接收到一字节数据产生一次中断,然后再读取某个寄存器就可以得到串口接收的数据了.然而在实际应用当中,基本

将调试串口作为普通串口使用(仅限于调试、测试)

将调试串口作为普通串口使用 2014年12月10日 导航制导与控制实验室 转载请注明:http://blog.csdn.net/wang_zheng_kai 出现的问题:um220模块需要串口,然开发板无空余端口的使用. 问题分析: mensa开发板共4个UART,其功能如下: UART0:为蓝牙预留的端口,若想使用,需要将wifi模块摘除: UART1.UART2:管脚的复用,作为网口的管脚,使用需要摘除DM9000: UART3:作为调试串口,可以作为普通端口使用: 解决方案: Bootlo

cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)

串口,可以理解为是用来和上位机(比如电脑)对话的,本节实验实现的是stm32接收上位机发送过来的信息,在原原本本的返回过去 stm32有5路串口,本节学习的是其中之一的USB串口(USART1)和学习IO口一样,首先要配置串口,由于原子已经配好了写在sys文件里,本渣就本着不造轮子的理念(其实是太难不懂orz),先跳过去了.. 所以本工程只需要一个main函数即可 #include "led.h" #include "sys.h" #include "de

【转】虚拟串口VSPM解决串口编程问题

通过串口调试软件 UartAssist.exe 和虚拟串口软件 VSPM,可以解决串口编程时没用硬件调试的问题,通过VSPM虚拟出串口设备,让程序发送信息到 VSPM 设备后通过 UartAssist.exe 直接回显信息,可以方便的调试串口通信程序. UartAssist 下载:http://download.csdn.net/detail/zh405123507/4198012 VSPM虚拟串口 下载: http://download.csdn.net/detail/zh405123507/

u-boot串口和stdio、console初始化及相关操作详解&lt;三&gt;

console是构建在stdio之上的,console的初始化是board_r中最后收尾的操作. console的初始化函数console_init_r在common/console.c中实现: int console_init_r(void) { char *stdinname, *stdoutname, *stderrname; struct stdio_dev *inputdev = NULL, *outputdev = NULL, *errdev = NULL; #ifdef CONFI