求助:STM32使用USART设置停止位为1,示波器实际测量是2位

2019-12-25 18:47发布

STM32使用USART初始化设置停止位为1,示波器实际测量是2位,是什么原因呢?请高手帮忙看看
初始化部分代码:
        USART_InitStructure.USART_BaudRate = bound;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;       

       USART_Init(USART1, &USART_InitStructure);
       USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
       USART_Cmd(USART1, ENABLE);

串口发送数据部分代码:
        for(i=0;i<DataLen;i++)
        {
            USART_SendData(USART1, DMX_buf[i]);
            while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
        }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
xy-mcu
1楼-- · 2019-12-25 22:56
后面的是2个字节间的延时
honeybear
2楼-- · 2019-12-26 02:51
xy-mcu 发表于 2017-8-20 20:04
后面的是2个字节间的延时

哪里?没有看明白什么意思,要如何修改
EMC菜鸟
3楼-- · 2019-12-26 04:38
这个对你实际使用有影响吗?本来2位停止位就能兼容1位停止位的,,,另外是不是芯片自带的连续发送允许延时一个BIT的功能(仅猜测)?
xy-mcu
4楼-- · 2019-12-26 08:30
 精彩回答 2  元偷偷看……
snoopyzz
5楼-- · 2019-12-26 12:08
连续发送用DMA测, 或者用发送空闲中断呀, 或者波特率降低, 比如1200

ps. 程序执行也要时间的!
honeybear
6楼-- · 2019-12-26 13:34
EMC菜鸟 发表于 2017-8-21 10:47
这个对你实际使用有影响吗?本来2位停止位就能兼容1位停止位的,,,另外是不是芯片自带的连续发送允许延时 ...

通讯是没有问题的,之前也没有注意过这个问题;现在客户要让第9位传输一个标志,用示波器才发现这个现象

一周热门 更多>