你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
mylovemcu 发表于 2019-12-20 11:47 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); USART_SendData(USART2,22);
查看全部评分
feifei2020 发表于 2019-12-20 17:05 1、TXE在单缓冲器传输中使用。而TC位则推荐在多缓存通讯中使用。 2、while应该放在前面,等待串口上的数据 ...
feifei2020 发表于 2019-12-23 14:05 你好像没有进行GPIO_PinAFConfig配置,而且DEBUG_USART_GPIO_APBxClkCmd和DEBUG_USART_APBxClkCmd命令我没 ...
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
tiwen
BBBB
aaa
2222
改成这个,串口助手直接什么都不显示了
while( USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET );
USART_SendData(USART2,22);
评分
查看全部评分
2、while应该放在前面,等待串口上的数据发送完毕,再发下一帧数据
改成这个
while( USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET );
USART_SendData(USART2,22);
串口没有显示了
我改成printf输出:
int main(void)
{
USART_Config();
while(1)
{
printf( "22 \n");
printf( "33 \n");
}
}
其他相关配置:
UART相关的配置:
void USART_Config(void)
{ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;
DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE);
DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
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(DEBUG_USARTx, &USART_InitStructure);
NVIC_Configuration();
USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);
USART_Cmd(DEBUG_USARTx, ENABLE);
USART_ClearFlag(USART1, USART_FLAG_TC);
}
/// 重定向C库函数printf到USART2
int fputc(int ch, FILE *f)
{
DEBUG_USARTx->SR;
while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE)== RESET);
USART_SendData(DEBUG_USARTx, (uint8_t) ch);
return (ch);
}
串口助手可以正常显示一部分后乱码,然后就没有数据传输,需要重新断电后,传输部分数据,乱码,...
评分
查看全部评分
用的是STM32F103,我试着把我写的程序下载到开发板上,是没有问题的,我怀疑我的板子上485这块是不是有问题,我用的是MAX3485。
搞不懂哪里出问题了。