为什么用stm8l(usart1)接收能正常接收 而发送时DR寄存器的值就没有改变 不能正常发送
//#include "stm8l15x.h"
#include "stm8l15x_conf.h"
unsigned char Buf;
void delayms(unsigned int x)
{
unsigned int j=0,i=0;
for(;i<x;i++)
for(;j<65535;j++);
}
main()
{
GPIO_TypeDef GPIO_Struct;
GPIO_DeInit(&GPIO_Struct);
GPIO_Init(GPIOB,(GPIO_Pin_4|GPIO_Pin_5),GPIO_Mode_Out_PP_Low_Fast);
//GPIO_Init(GPIOC,GPIO_Pin_2 | GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Slow);
//GPIO_ExternalPullUpConfig(GPIOC,GPIO_Pin_2 | GPIO_Pin_3,ENABLE);
GPIO_Write(GPIOB,0x10);
GPIO_Init(GPIOC,GPIO_Pin_2,GPIO_Mode_In_PU_No_IT);
GPIO_Init(GPIOC,GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Fast);
CLK_PeripheralClockConfig(CLK_Peripheral_USART1,ENABLE);
USART_DeInit(USART1);
USART_Init(USART1,9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,(USART_Mode_TypeDef)(USART_Mode_Rx|USART_Mode_Tx));
//USART_ClockInit(USART1,USART_Clock_Disable,USART_CPOL_Low,USART_CPHA_2Edge,USART_LastBit_Disable);
//USART_ClearITPendingBit(USART1,USART_IT_RXNE);
//USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
USART_Cmd(USART1,ENABLE);
GPIO_Write(GPIOB,0x20);
//enableInterrupts();
//rim();
USART_SendData8(USART1,0x22);
USART_SendData8(USART1,0x22);
while (1)
{
while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==RESET);
Buf=USART_ReceiveData8(USART1);
while((USART1->SR&0x80)==0x00);
USART_SendData8(USART1,Buf);
}
} |