zoukankan      html  css  js  c++  java
  • MSP430-RS232发送解析

    串口通信是我们平常经常用到的,我第一次接触串口是直接学习32,当时我一直以为所谓的串口通信就是usb接口再通过CH340转换芯片就是串口通信。串口通信记串行通信接口,是处理器和外界进行数据通信的一种方式。其又可以分成同步串口通信和异步串口通信,这个却决于他们是否有同步时钟(有就是同步通信)。咱们用的RS23就是一种异步通信,SPI,IIC就是同步通信。

     #include <MSP430x14x.h>
    
    void main( void )
    {
    int a=0xD5D6;  // 定义的一个int类型的数据,两个字节,一会将这个int类型的数据发送到PC端
    
    WDTCTL = WDTPW + WDTHOLD; 
    
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
    
    P6DIR |= BIT2;P6OUT |= BIT2;
    
    P3SEL=BIT4+BIT5;  //P3的4,5端口是数据发送口和接收口,开启复用功能
    
    ME1=UTXE0+URXE0;  //ME:Module Enable Register模块使能寄存器
    
                                          //UTXE0: usart transmit enable  使能发送端和接收端
                                          //URXE0: usart receive enable
    
    UCTL0=CHAR;  // 默认 异步通信模式,8位数据,无校验,1位停止位
    
    UTCTL0=SSEL0;//时钟源的选择
    
    UBR00=0X0D;
    UBR10=0X00;
    UMCTL0 = 0x6B;
    
    /**************************插入一段用于解释这个串口波特率*****************/
    
    /*与串口波特率相关的有5个寄存器
    
     SSELx:串口波特率发生器的时钟源,一般对于9600以下的用辅助时钟ACLK就可以解决,以上可以选择SMCLK, 00-UCLK,  01-ACLK, 10-SMCLK, 11-SMCLK
    CKPL:UCLK管脚输入的极性,0是输入, 1是取反
    UxBR0寄存器:波特率发生器分频系数低8位
    UxBR1寄存器:波特率发生器分频系数低8位
    UxMCTL:波特率发生器分频系数的余数(8位)
    分频系数计算方法就是UxBR=CLK/BAUD,
    
    上边的赋值是有一个表格的,我们不用自己算,可以直接按照表格写 */
    
    /********************************************************************/
    UCTL0 &= ~SWRST; // 初始化UART0状态机
    IE1 |= URXIE0; // 使能接收中断
    _EINT();
    while(1)
      {
        TXBUF0 = a >> 8; //每次只能发送TXBUF0(一个字节),这是取了a的高八位
        while (!(IFG1 & UTXIFG0));// 等待发送结束
        TXBUF0 = a&0x00ff;// 这是取了a的低八位
        while (!(IFG1 & UTXIFG0));
      }
    }

      

       

      

  • 相关阅读:
    Redis过期机制
    vim使用
    ex command in Linux with examples
    【转】Linux 文档编辑 : ex 命令详解
    vscode go语言环境搭建
    golang slice a 的地址和a[0]的地址不一样
    文件加锁,作用是用来做什么?以及使用细节
    文件锁
    go创建指定大小的文件,获取文件大小
    go 实现内存映射和进程间通信
  • 原文地址:https://www.cnblogs.com/CaiFengYuanXing/p/13612489.html
Copyright © 2011-2022 走看看