MSP430 串口通讯

发布者:科技飞翔最新更新时间:2022-09-21 来源: csdn关键字:MSP430  串口通讯  系统时钟 手机看文章 扫描二维码
随时随地手机看文章

MSP430 串口1 实现即时通讯

芯片:430F169


现在市面上大多数单片机都自带串口,本章介绍如何建立430串口通讯

单片机通过接收口(URXD)和发送口(UTXD)和外界进行通讯

430F169自带串口0和串口1两个通讯口


串口通讯是基于系统时钟上进行的,系统时钟的配置可以参考我之前的系统时钟进行配置。


1 串口控制各种寄存器

<1>UxCTL,串口控制寄存器

<2>UxTCTL,串口传输控制寄存器

<3>UxRCTL,串口接收控制寄存器

<4>UxBR0,波特率控制寄存器0

<5>UxBR1,波特率控制寄存器1

<6>UxMCTL,调制控制寄存器

<7>UxRXBUF,接收缓存寄存器

<8>UxTXBUF,传输缓存寄存器

<9>ME1,模式选择寄存器1

<10>ME2,模式选择寄存器2

<11>IE1,中断使能寄存器1

<12>IE2,中断使能寄存器2

<13>IFG1,中断标志寄存器1

<14>IFG2,中断标志寄存器2

关于这些寄存器作用请查阅用户指导手册!用户手册在本文最下方

2 串口配置步骤

<1>设置SWRST

<2>设置MEX开启串口功能

<3>设置数据位、奇偶校验位、停止位、

<4>设置串口波特率

<5>开启串口接收中断

3 代码实现


/*


***********ruopan***********


串口设置 

波特率:115200

数据位 :8

停止位:1

奇偶校验位:无


功能:

不停发送 "渃畔,苍穹守望者"

实现串口同时接收发送数据

模式:串口模式


芯片:MSP430F169

P3.6 P3.7外设为串口1通信

实现printf重定义

****************************

*/

//文件1

#include "msp430x16x.h"

#include "System_clock.h"

#include "uart.h"

#define cpu_f ((double)8000000)

#define delay_us(x) __delay_cycles((long)(cpu_f*(double)x/1000000.0))

#define delay_ms(x) __delay_cycles((long)(cpu_f*(double)x/1000.0))

void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  System_clock();

  Uart_GPIO_init();

  Uart_config();

  _EINT();

  while(1)

  {

    delay_ms(1000);

  printf("渃畔,苍穹守望者rn");

  }

}

//文件2

#ifndef __System_clock_H

#define __System_clock_H


void System_clock(void);


#endif

#include "System_clock.h"

#include


void System_clock(void)

{

  unsigned int iq0;

  BCSCTL1&=~XT2OFF;

  do

  {

    IFG1&=~OFIFG;

    for(iq0=0xff;iq0>0;iq0--);

  }

  while((IFG1&OFIFG)!=0);

  BCSCTL2=0x88;

}

//文件3

#ifndef __UART_H

#define __UART_H


void Uart_GPIO_init(void);

void Uart_config(void);

void uart_sendbyte(int c);      //串口重定向

int putchar(int c);

#endif


#include "msp430x16x.h"

#include "uart.h"


void Uart_GPIO_init(void)

{

  P3DIR=0X0f;//0000 1111

  //P3DIR |=  BIT1 + BIT2 +BIT3 + BIT4 +BIT6;

  P3DIR &=~BIT7;

  P3SEL |= BIT6 + BIT7;//1100 0000 选择P3.6 P3.7为外设

}

void Uart_config(void)

{

  ME2 |= UTXE1 + URXE1;                     // Enable USART1 TXD/RXD

  UCTL1 |= CHAR;                            // 8-bit character

  UTCTL1 |= SSEL1;                          // SMCLK

  UBR01 = 0x45;                             // 8MHz 115200

  UBR11 = 0x00;                             // 8MHz 115200

  UMCTL1 = 0x4A;                            // 8MHz 115200 modulation

  UCTL1 &= ~SWRST;                          // 清除串口复位

  IE2 |= URXIE1;                            // Enable USART1 RX interrupt

}


#pragma vector=UART1RX_VECTOR

__interrupt void usart1_rx (void)

{

 while (!(IFG2 & UTXIFG1));               

   TXBUF1 = RXBUF1;  // RXBUF0 to TXBUF0

}

int putchar(int ch)

{

/*  if(ch==0x0d)

  {

    uart_sendbyte(0x0a);

  }

  */

  uart_sendbyte(ch);

  return ch;

}


void  uart_sendbyte(int ch)

{

  while(!(IFG2&UTXIFG1));

  TXBUF1=ch;

}


关键字:MSP430  串口通讯  系统时钟 引用地址:MSP430 串口通讯

上一篇:MSP430F169 FLASH 操作
下一篇:MSP430F5529-基于ATK-IMU901角度传感器在UART的串口通信于数据显示

推荐阅读最新更新时间:2024-11-12 11:38

STM32单片机串口通讯代码
在STM32开发中,串口是我们最常用的接口。通过串口,我们很方便地把数据输出到电脑,方便我们进行程序调试。下面我们来看看STM32的串口通讯代码。 要实现串口通讯,我们要进行下面几个步骤: 首先:要打开GPIO口的时钟和串口模块时钟。在圆点博士小四轴中,我们用的是GPIOA和COM1模块。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 其次:要指定GPIO口,即确定哪些IO是用于串口通讯的。记得使用GPIO_Mode_AF_PP模式 GPIO_I
[单片机]
MSP430F147无线温度接收
//===========================================================================// // 北京理工大学珠海学院 徐方鑫 // // 280599580@qq.com // // 2011.3.31 // //===========================================================================// #includ
[单片机]
MSP430读写DS1302程序
#include #define DS1302_DIR P1DIR #define DS1302_IN P1IN #define DS1302_OUT P1OUT #define DS1302_RST BIT7 #define DS1302_SCLK BIT5 #define DS1302_SDI BIT6 //定义MSP320的端口 #define DS1302_RST_LO DS1302_OUT &= ~DS1302_RST #define DS1302_RST_HI DS1302_OUT |= DS1302_RST #define DS1302_SCLK_LO DS1302_OUT &= ~DS1302_SCLK
[单片机]
MSP430Ware & TI Resource Explorer
一、描述 MSPWare 是一组适用于所有 MSP 器件的用户指南、代码示例、培训以及其他设计资源集合,方便地打包在一起供用户使用,它基本上包含了开发人员要成为 MSP430 和 MSP432 专家所需的一切!除了提供完整的现有 MSP430 和 MSP432 设计资源,MSPWare 还提供多种高度抽象化的软件库,范围涵盖 MSP 驱动程序库或 USB 等特定于器件和外设的库,以及图形库或电容式触控库等特定于应用的库。MSP 驱动程序库是一个尤为重要的库,它可以帮助软件开发人员利用高级别 API 来控制复杂的低级别软件和外设。当前,MSP 驱动程序库支持 MSP430F5x/6x 和 MSP432P4x 系列器件。 如何获得
[单片机]
<font color='red'>MSP430</font>Ware & TI Resource Explorer
MSP430中断参数
MSP430中断参数 1.中断向量入口参数 typedef enum { VECTOR_RTC =41u, /* RTC */ VECTOR_PORT2 , /* Port 2 */ VECTOR_TIMER2_A1 , /* Timer0_A5 CC1-4, TA */ VECTOR_TIMER2_A0 , /* Timer0_A5 CC0 */ VECTOR_USCI_B1 , /* USCI B1 Receive/Transmit */ VECTOR_USCI_A1 , /* USCI A1 Receive/Transmit */ VECTOR_PORT1 , /* Port 1
[单片机]
基于MSP430F133单片机的改进型浮子式液位计
  在对传统浮子式液位计优缺点进行分析的基础上,介绍了采用TI公司MSP430F133单片机改进传统浮子式液位计液位测量的方法,给出了具体电路的设计方法和软件设计注意事项。   引言   为了用较低的成本完成大量程液位的长期可靠测量,笔者利用MSP430单片机的低功耗特性结合光电液位的绝对位置测量功能设计了一种新型液位计—磁光液位计,现简要介绍如下。   1 机械工作原理   本液位计同普通光电液位计一样有一个光电码盘(如图1所示),码盘白色部分反射光线,而黑色部分吸收光线,图2所示的光耦和图1所示的码盘间距约2mm,并采用圆心安装。光耦随电路板固定在液位计外壳上,液位变化时浮子牵引水位轮转动,安装在同一轴上的码盘也随水位
[单片机]
基于<font color='red'>MSP430</font>F133单片机的改进型浮子式液位计
MSP430读写片内FLASH保存数据
FLASH型的MSP430单片机都带有信息存储器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被写入MSP430之后,程序通过SegmengA及SegmentB就可以保存不掉电数据。注意:每次程序烧写到MSP430时,SegmengA及SegmentB都会被擦除! 接下来贴出本文的程序代码,以及程序写入信息存储器之后的FLASH数据: #include msp430xG43x.h void WriteSegment_256 (char index,c
[单片机]
<font color='red'>MSP430</font>读写片内FLASH保存数据
STM32F429HAL库时钟系统学习笔记
F4的系统的时钟和F1基本相同,和F1 不同的就是锁相环倍频系数提高,就是系统时钟PLL的时钟频率高达180M(做完电赛控制组,感觉100M以下的单片机以后都不用再学了,图像处理完全做不了)。 HSI:系统内部告诉时钟16M; HSE:外部高速时钟这里我们一般叫外部晶振正点原子的开发板是25M输入范围是(4-26M) 我们以外部时钟源25M为例外部时钟经过PLL锁仙环(VCO:压控振荡器,这个是电压控制振荡频率的一个元器件没必要深究) 经过*N倍频在/P就得到我们想要的系统时钟频率了 系统时钟=外部晶振/M*N/P; 我们在来看HAL库的配置函数 RCC- CR |= (uint32_t)0x00000
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved