IO模拟串口,但存在些定时器方面问题,希望高手指点一下,

2019-03-24 15:50发布

由于uart口做了其它用途,板子上剩了1个IO口,为了完成串口功能,用该IO口完成串口功能,
看了看网上的资料,分为两步完成该程序,第一步,定时器定时,第二步,用与位计算,检查输出位电平,高的话输出口置1,低的话输出口置0,
片子用的晶振是32768的,需要的波特率是9600,我查了资料,计算方法是  晶振频率/波特率,TBCCR0的值可以这样算出,算出来是3.5,于是先设为7计算4800的波特率,发现在串口上得到的数据不正确,考虑了一下可能是程序中有一些命令延迟了时间,导致时间不符,于是改小了该数据,得到了正确的数据,于是对9600的实现上,我依然采用了这样的方法,使用了较小的数据,利用增加了NOP命令的方法延迟了时间,得到了正确的收到数据,
但是问题也出来了,那么TBCCR0中存的数值究竟是什么意思,这个时钟和程序中一条指令的时钟之间有什么关系,看来这两个时钟并不是完全一致的,那么他们又有什么关系,看来晶振的周期要比指令的周期要长一些,对于系统的时钟还是不明白,请各位帮忙指点一下,麻烦了。谢谢 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
wuzhongbaby
2019-03-24 22:16
< :TI_MSP430_内容页_SA7 --> 看你选择的时钟啊。cpu的看看寄存器选择的是内部的dco还是外部的晶振时钟,定时器的也是有选的,是aclk还是什么的。要自己选的。肯定是你没把设定时钟寄存器搞明白

一周热门 更多>

相关问题

    相关文章