
单片机型号STM32F103C8T6,使用标准库,串口2,smartcard模式。 USART_SendData(SC_USART, *(Data+n)); while((USART_GetFlagStatus(SC_USART, USART_FLAG_TC) == RESET) ) { Counter++; } 代码如上,发送数据正常,但是数据与数据之间的间隔太长了,抓波形看,是查询USART_FLAG_TC这个标志位,一直查不到。1个字节发送时间在1ms左右,查询了总共3ms,才查到置位,然后才发送下一个字节。字节与字节之间的间隔有3ms,太长了。是单片机本身的原因吗?有什么规避方法吗 |
看看是不是USART_GTPR这个寄存器的GT值被设置了,USART_FLAG_TC 置位是延时这个时间后的 |