STM8L串口通信,只能接收,无法发送
写了一个串口通信实验,接的蓝牙,发送指令后,正确的话应该能收到OK,但是现在就是没有返回。void USART_Config(void)
{
GPIO_Init(GPIOC,GPIO_Pin_6,GPIO_Mode_In_PU_No_IT);
GPIO_Init(GPIOC,GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);
CLK_PeripheralClockConfig(CLK_Peripheral_USART1,
ENABLE);
USART_DeInit(USART1);
USART_Init(USART1,
(u32)9600,
USART_WordLength_8b,
USART_StopBits_1,
USART_Parity_No,
(USART_Mode_TypeDef)(USART_Mode_Tx |USART_Mode_Rx ));
USART_Cmd(USART1,ENABLE);
}
PUTCHAR_PROTOTYPE
{
if(ch =='\n')
{
while(!(USART1->SR & USART_FLAG_TC ));
USART_SendData8(USART1,'\r');
while(!(USART1->SR & USART_FLAG_TC ));
}
while(!(USART1->SR & USART_FLAG_TXE ));
USART_SendData8(USART1,ch);
while(!(USART1->SR & USART_FLAG_TXE ));
return (ch);
}
//主函数
void main(void)
{
char zsh[]="AT+CB\n";
//disableInterrupts();
//enableInterrupts();
CLK_Config();
USART_Config();
/*
GPIO_Init(GPIOB,
GPIO_Pin_0,
(GPIO_Mode_TypeDef)GPIO_Mode_Out_PP_High_Slow);//BT_RESET/
*/
while(1){
// scan_key();
/*
GPIOB ->ODR =~GPIOB ->ODR;
DelayMS(1000);
GPIOB ->ODR =~GPIOB ->ODR;
*/
cnt = 0;
printf("AT+CA\r\n");
while(temp !=' \n'){
while(!(USART_FLAG_RXNE & USART1_SR) );
temp = USART_ReceiveData8(USART1);
buf=temp;
}
DelayMS(100);
}
}
硬件连接有问题吗 你好我好大家好! 发表于 2015-10-3 10:20
硬件连接有问题吗
放假了,没用示波器测,用万用表测是通的 M≠0 发表于 2015-10-3 12:44
放假了,没用示波器测,用万用表测是通的
等先用示波器测测看看
页:
[1]