1497|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

MSP430G2553 的串口通信 [复制链接]

1:首先说一下  G2553串口需要注意的一些事项吧   
(1):硬件上的连接  跳线帽要改成HW 而不是SW 注意在板子上仔细找一下可以看到SW和HW的字样
(2):使用外部晶振32768的时候  不能超过9600的波特率  使用内部DCO的时候 可以高起来 但是注意波特率计算        的寄存器不要小于3   切记  波特率超过9600的时候 板子自带的下载电路 已经不支持了  必须外接串口电路 
2:介绍一下一个串口代码的简单过程:
1:选择你需要的时钟源 用外部晶振32768还是  内部的DCO  如过选择内部DCO  需要验证一下矫正数据是否被擦除
2:配置  TX  RX的引脚  
3:下面开始配置和串口有关的寄存器  
First:

USCI_Ax控制寄存器  G2553有两个串口控制寄存器  UCAxCAL0 和UCAxCTL1  一般情况下 作为新手的我们 不需要管UCAxCTL0  默认即可  我们只要配置UCAxCTL1  中的 时钟源选择和 软件复位使能即可 一般选择ACLK或者SMCLK即可   至于软件复位的那位UCSWRST
UCSWRST:0被禁用。USCI复位被释放用于运行。 
 1被启用。USCI逻辑保持在复位状态。
意思就是说在单片机复位之后 如果 此位是0  那么串口可以正常工作  为1 即保持 复位状态  复位状态后  此位为1 就是说 复位后如果不清零 那么串口是不会工作的 
Second: 

配置好上面的控制寄存器后 下面就是波特率的配置UCAxBR0 波特率控制寄存器0 
UCAxBR0=(时钟频率/波特率)的整数部分  次数必须小于0xff  多余的放在UCAxBR1中

Next:

配置波特率调整器:UCAxMCTL =(时钟频率/波特率)的小数部分*8

Next_1:
此时根据需要是否使用串口发送中断和接受中断  务必不要忘记开启总中断  
Final:清除UCSWRST位  此时串口开始工作 

下面 我来解释一下 那个矫正时钟的问题  就是看门狗下面的这句话 
 if (CALBC1_1MHZ==0xFF)                    // If calibration constant erased
  {                                            
    while(1);                               // do not load, trap CPU!!    
  }
作为新手的我们 在看到 CALBC1_1MHZ的时候  我们会很自然的认为他也是类似于BIT0一样的掩码  但是我们经过头文件的搜索后 发现并不是这样  
我们可以收到这样一段话:
#define CALDCO_1MHZ_ (0x10FEu) /* DCOCTL Calibration Data for 1MHz */
READ_ONLY DEFC( CALDCO_1MHZ , CALDCO_1MHZ_)
这个 我不过多的说 只说一点:这个片子在出厂的对时钟进行校准过 校准的数据就放在Flash的某段里面 这个CAKBC1_1MHZ就是被定义成了flash里面的一个地址 如果你不小心把Flash里面的数据擦除以后 那么里面的数据就会全部变成0XFF 所以这句话的意思就 取出来CAKBC1_1MHZ这个flash里面的数据和0xff比较 懂点了吧 你可以单步仿真验证一下 

 

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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