430的USCI串口(UART mode)初始化设置十分繁杂, UCA0BR0 UCA0BR1 UCA0MCTL 等还需按照波特率计算,并且有小数部分微调,在这里共享一个头文件,在操作串口时,只要一个init_uart(9600);就全搞定,注:9600还能改成4800 115200等其他波特率,十分方便。
#define clock 8000000
#define UCBRS(x) UCBRS_##x
void uart_init(long baud)
{
float x = clock / baud ;
long y = clock / baud ;
char n;
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ;
UCA0CTL1|=UCSSEL_2 ;
UCA0BR0 = y % 256;
UCA0BR1 = y / 256;
n=(char)((x-y)*8);
UCA0MCTL=2*n; //UCBRS_n n为*2
UCA0CTL1 &= ~UCSWRST;
IE2 |= UCA0RXIE ;
}
UCA0MCTL=2*n; 这里是移位操作,详情请看register。
当然,时钟修改了的话,也要记得把clock修改一下。
好用的话,大家支持一个吧,下面我把头文件共享,支持printf,getchar等。
关键字:msp430 USCI串口
引用地址:
msp430的USCI串口,妙招搞定
推荐阅读最新更新时间:2024-03-16 14:58
MSP430单片机的PWM操作
//******************************************************************************* // 描述:MSP430实现PWM。反映在LED灯上,可以看到LED灯的亮度不断变化 // // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ------------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.2|-- LED // // // 硬件电路:MSP430F135核心实验板-I型 //
[单片机]
msp430f5418使用总结
公司的产品是基于MSP430F5418开发的,在程序的调试过程中遇到过一些问题,现总结如下。 1)UCS 时钟如同处理器的心脏,每一个周期就是心脏的一次脉动。以前使用其他处理器时,只需要选择合适频率的晶体,接在XT1和XT2两端,再加两个电容就可以了。而MSP430F5418的时钟系统略显复杂,容易让刚开始接触它的人一头雾水。5418的时钟设置由UCS(Unified Clock System)来管理,使用起来比较灵活,其结构如图 所示。 UCS模块有XT1CLK和XT2CLK两个外部时钟源,以及VLOCLK、REFOCLK和DCOCLK(DCOCLKDIV是DC
[单片机]
MSP430F42X系列单片机16位ADC通用程序库
这个msp430单片机的16位ADC库文件的调用方法可先下载完整代码然后找到(例4.1.6)这一节,里面有调用方法 ADC16.c文件: /* MSP430F42X系列单片机16位ADC通用程序库 说明:该驱动程序库包含了常用的16位ADC操作与控制功能函数,如选择通道、设置信号放大倍数、设置数据格式、基准源输出开关等,以及常用采样函数,包括单通道采样、平均采样、多通道同时采样等。可以作为各种程序的底层驱动使用。 要使用该库函数,需要将本文件(ADC16.c)添加进工程,并在需要调用ADC函数的文件开头处包含 ADC16.h */ // MSP430FE425 // +------
[单片机]
MSP430方波发生器
最近在研究MSP430,有产生方波的需要,于是尝试用定时器写了两个方波发生的函数,一个可以产生几十K的方波,一个可以产生几百K的方波,感觉还比较有用,特来分享。 频率与CCR0计算式:2*CCR0/TimerAFrequency=1/F --- CCR0=TimerAFrequency/(2*F) void low_square_Generator(int frequency) //几十KHZ方波产生器 { P1DIR |= 0x02; //P1.1的第二功能 P1SEL |= 0x02; CCTL0=OUTMOD_4; //翻转模式
[单片机]
MSP430F5529LP(一)IIC与OLED的HELLOWRLD
简单理解下什么是IIC I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 总线信号 : SDA :串行数据线 SCL :串行时钟 总线空闲状态 : SDA :高电平 SCL :高电平 起始位:SCL为高电平期间 SDA出现下降沿 终止位:SCL为高电平期间 SDA出现上升沿 数据传输 :SDA的数据在SCL高电平期间被写入从机。所以SDA的数据变化要发生在SCL低电平期间。 先简单写出IIC.h头文件
[单片机]
MSP430教程11:MSP430单片机低功耗结构
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
MSP430教程16:MSP430单片机开发总结
1.#i nclude 指要在编辑器设定目录下,#i nclude 指的是在当前工程目录下。 2.要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。 3.命名中不能有-,比如:byq-ee会认为是错误的,要用下划线。 4.用IAR软件仿真时,可以加入变量,如果是查看I/O信息只需加入PXIN,PXOUT即可。 5.IAR在处理字符时,要注意,是字符处理结尾标志,他和其他编辑软件是不同的。比如我们长用字符处理回 自动在结尾处加,但IAR有些是不加的,这就要十分注意。 6.如果只用到LFX1的低速时钟,9600bit/s传输的话,接收会出现问题,原因是误差太大,可以设置到4800以下。 7.在写FLA
[单片机]
MSP430系统应用结构设计与选型
1 MSP430 简介 MSP430是TI公司推出的16位单片机系列产品,在电池供电的低功耗应用中具有独特的优势。其工作电压为1.8~3.6 V,正常工作时功耗可控制在200μA左右,低功耗模式可实现2μA甚至O.1μA的低功耗。MSP430系列单片机作为性能优异的MCU在中国已经得到了广泛的应用。MSP430具有高集成度,通常在单个芯片上集成了12位的A/D转换器、比较器、多个定时器,以及片内USART、看门狗、片内DCO等。一般单片就可满足大多数的应用需要。 MSP430单片机的程序存储器是Flash存储器,并且支持JTAG在线编程,可以方便地实现程序的下载、仿真、调试和升级。 目前整合性最好的MSP430F44X系列
[单片机]