你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8L 串口初始化疑问

[复制链接]
wudianjun2001 提问时间:2015-12-4 10:56 /

STM8L串口初始化,必须先写BRR2吗?看到好多例程里这么写,为什么?如何先写BRR1会怎么样?

void USART1_Init (void)
{
        uint16_t buad;

        USART1_CR2 = 0x00;                                                                         //禁止UART发送和接收
        USART1_CR1 = 0x00;                                                                         //b5=0允许UART,b2=0,禁止校验。8位数据位,无校验
        USART1_CR3 = 0x00;                                                                         //b5,b4=00,1个停止位
                                                               
        //设置波特率,注意:(1) 必须先写BRR2(2) BRR1存放的是分频系数的第11位到第4位,(3) BRR2存放的是分频系数的第15位到第12位,和第3位到第0位
        //4000000/9600=417=0x01A1 0x1A,0x01;
        buad = (uint16_t)(FSYS / USART1_BUAD);
        USART1_BRR2 = (uint8_t)(((buad >> 8) & 0xF0) | (buad & 0x0F));
        USART1_BRR1 = (uint8_t)(buad >> 4);       
        //USART1_BRR2 = 0x01;
        //USART1_BRR1 = 0x1A;       
       
        USART1_CR2 = 0x2C;                                                                        //b2=1,允许接收。b3=1,允许发送。b5=1,允许产生接收中断 。
}


收藏 评论0 发布时间:2015-12-4 10:56

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版