您的位置:首页 > 其它

串口初始化中U0DLL=Fdiv%256怎样理解(待解决)

2012-09-22 15:40 253 查看
串口初始化程序如下所示:

1#define UART_BPS 115200 //串口通信波特率

2U0LCR=0x83; //DLAB=1,允许设置波特率

3Fdiv=(Fpclk/16)/UART_BPS; //设置波特率

4U0DLM=Fdiv/256; //除数的高8位

5U0DLL=Fdiv%256; //除数的低8位

6U0LCR=0x03; //DLAB=0,禁止访问除数锁存器

波特率除数计算公式,其中,baud为所需要的波特率:

UxDLM,UxDLL=Fpclk/(16*baud)

U0DLL和U0DLM寄存器一起构成一个16位除数,U0DLL包含除数的低8位,U0DLM包含除数的高8位

第4句U0DLM=Fdiv/256可以看成Fdiv>>8位,右移8位就相当于除以256

第5句U0DLL=Fdiv%256是怎么一回事呢?等同于二进制的什么呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐