STM8串口发送问题,我用的STM8L151,不接收只发送,求指点
我用串口给电脑发数据,发10个数,为什么串口有时候可以收到10个,有时候却只能收到4个或者5个voidUsart_Init(void){SYSCFG->RMPCR1|=0...
我用串口给电脑发数据,发10个数,为什么串口有时候可以收到10个,有时候却只能收到4个或者5个
void Usart_Init(void)
{
SYSCFG->RMPCR1 |= 0x00; // PC3 PC2
CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);
USART_DeInit(USART1);
USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1,
USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
enableInterrupts();
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_Cmd(USART1, ENABLE);
}
这是串口初始化
USART_SendData(test_user,10); //强行发10 个数
子函数:
void USART_SendData(uint8_t *data, uint8_t size)
{
uint8_t i = 0;
for(i = 0; i < size; i++)
{
USART_SendData8(USART1, data[i]);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
delay_ms(200);
}
} 展开
void Usart_Init(void)
{
SYSCFG->RMPCR1 |= 0x00; // PC3 PC2
CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);
USART_DeInit(USART1);
USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1,
USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
enableInterrupts();
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_Cmd(USART1, ENABLE);
}
这是串口初始化
USART_SendData(test_user,10); //强行发10 个数
子函数:
void USART_SendData(uint8_t *data, uint8_t size)
{
uint8_t i = 0;
for(i = 0; i < size; i++)
{
USART_SendData8(USART1, data[i]);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
delay_ms(200);
}
} 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询