
在MSP430F149中TBCTL表示定时器B的控制寄存器。MCx是该寄存器的第5-4位,是定时器B的工作模式控制位,表示定时器的工作方式。
在头文件中
#define MC_0 (00x10u) / Timer A mode control: 0 - Stop /
这是一个宏定义,MC_0的值即为:00x10u,它是一个无符号乘法运算,结果就是为0,即MC_0的值实际为:0x00(因为这个值比较特殊,所以现用MC_2举例)如果是#define MC_2 (20x10u) ,则MC_2=0x20,二进制为:0010 0000,正好第5位为1。
TBCTL & MC_0 是TBCTL与MC_0按位相与的运算,其作用就是判断MCx(TBCTL第5位和第4位的值)是否为0。
PC就是存放当前程序运行到的代码所在地址的寄存器,所以里边是地址。
栈,你可以理解成以前医院里插挂号条那个签子,如果后边插上去的单子,就得先拿下来,之前插上去的,反而要后拿;或者认为是个桶,放里放和桶一样大的饼,要把底下的饼拿出来,就得等上边的饼拿走,新放上去的饼能新拿出来。所以叫“后进先出”
中断向量就是中断源触发后CPU要跳转到的特定地址,中断,就是打断之前正在执行的东西,比如你正在吃饭,电话响了,你要做的就是先放下碗筷(相当于压栈,保护吃饭现场),然后接电话(跳转到中断服务),接完以后,挂机,拿碗筷(RET,恢复吃饭现场),然后继续吃。
姓名:杨汉雄
学号:19011210569
嵌牛导读MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在 串行通信 与 并行通信 之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。MSP430含有两个USCI外设支持复数的串行通信协议,不同的USCI模块支持不同的协议。其中USCI_Ax支持UART,IrDA,LIN,SPI协议;USCI_Bx支持IIC,SPI协议。
嵌牛正文
UART是通用异步串行接口的简称。串行通信接口是用来与单片机外界系统进行通信桥梁,比如可以吧单片机ADC转换的数据通过串口发送给PC机(上位机),经上位机处理之后在发回给单片,达到通信的目的。TI公司的MSP430系列单片机均具有UART功能,其中大部分还和SPI,I2C功能复用,通过相关寄存器的配置,可以很轻松地就实现了UART,SPI,I2C的通信功能。本文对MSP430串口的寄存器进行了小结。
UCAxCTL0寄存器
7-UCPEN 校验位使能 0=关闭 1=开启
6-UCPAR 校验方式选择 0=奇校验 1=偶校验
5-UCMSB 数据方向 0=低位先 1=高位先
4-UC7BIT 单次数据最大长度 0=八位数据 1=七位数据
3-UCSPB 停止位选择 0=1位停止位 1=2位停止位
2-1-UCMODEx 串口模式选择位
00=uart模式
01= Idle-line multiprocessor mode
10= Address-bit multiprocessor mode
11=UART mode with automatic baud-rate detection
0-UCSYNC 同步模式使能位 0=异步模式 1=同步模式
UCAxCTL1寄存器
7-6 UCSSELx 串口时钟选择位 00=外部时钟 01=ACLK 10=SMCLK 11=SMCLK
5 UCRXEIE 接收错误中断使能位 0=关闭中断 1=开启中断
4 UCBRKIE 接收完成中断使能位 0=关闭中断 1=开启中断
3 UCDORM 睡眠模式使能 0=关闭 1=开启
2 UCTXADDR帧数据选择 0=下一帧送数据 1=下一帧送地址
1 UCTXBRK数据停止帧选择 0=下一帧非停止 1=下一帧停止
0 UCSWRST软件复位使能 拉高时开启复位将发送缓存接收缓存中断标志等清零
串口波特率设置
MSP430串口可以使用选择低频晶振或高频晶振来产生串口通信的波特率,以此节省功耗,通过配置UCAxMCTL 调制控制寄存器的第0位:UCOS16=0进入低频模式 UCOS16=1进入高频模式(ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz)。
UCAxBR0 设置波特率的低八位
UCAxBR1 设置波特率的高八位
一般来说波特率可由时钟分频得到,分频数N=晶振频率/想得到的波特率
但N往往不是整数,所以需要用到调制功能。 通过UCAxMCTL调制控制寄存器可以配置出相应的小数部分。
7-4位UCBRFx 高时钟模式下的调制值;
3-1位UCBRSx 低时钟模式下的调制值
0位UCOS16 高低频模式的选择
调制功能有两种:
1通过低频时钟调制低波特率(32768K)
整数部分UCBRx=N;
小数部分UCBRSx=round[(N-INT(N)8] //ROUND为四舍五入
2通过高频时钟调制低波特率(1048576时钟预分频后)
整数部分UCBRx=INT(N/16)
小数部分UCBRFx=round([(N/16)-INT(N/16)]16)
比如要在低频模式下得到9600波特率,先计算分频数N=32768/9600=341,取整得N=3,则应向UCAxBR0 填入0x0000 0011
取小数位0418=328 则应向 UCBRSx 寄存器中填入0x0000 0011
以上就是关于msp430使用全部的内容,包括:msp430使用、MSP430中PC的相关问题、MSP430F6638单片机uart寄存器小结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)