打印
[MSP430]

2553 modbus 的3.5t

[复制链接]
1572|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2024-8-5 08:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在写modbus rtu, 要使用定时器限定每帧数据的时间,现在晶振是1M,波特率9600.3.5t设置在5ms没有问题吧

我找到一个例子如下
void timer0_init()
{
    TACCR0 = 132;    //时钟是32.768K,那么值设为3.5T = 1/9600*11*32768 = 38*3.5 = 132              
    TACTL |= TASSEL_2 + ID_3;//设置SMCLK作为定时器时钟源,八分频
    TACCTL0 |= CCIE;//设置中断使能
}


我是下面这样修改的,是否正确,大家帮忙看看

void timer0_init()
{
    TACCR0 = 4010;    //时钟是1M,那么值设为3.5T = 1/9600*11*1000000 = 1146*3.5 = 4010            
    TACTL |= TASSEL_2 + ID_3;//设置SMCLK作为定时器时钟源,八分频
    TACCTL0 |= CCIE;//设置中断使能
}

使用特权

评论回复

相关帖子

沙发
dalarang| | 2024-8-5 10:02 | 只看该作者
5ms没问题,虽然说是3.5T,但实际使用的时候超时时间稍微多一点不要紧的

使用特权

评论回复
板凳
xionghaoyun| | 2024-8-6 08:24 | 只看该作者
这主频有些低了 我看不懂51的写法

使用特权

评论回复
地板
神奇号| | 2024-8-6 10:18 | 只看该作者
用的stm32,modbus的3.5t实测通信会出错,后来不管9600还是115200,都设成10毫秒,用了很久。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

851

主题

1039

帖子

4

粉丝