[mw_shl_code=c,true]void UART1_Init_Coor(u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(36*1000000)/(bound*16);//
mantissa=temp; //
fraction=(temp-mantissa)*16; //
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<2; //
GPIOA->CRH&=0XFFFFF00F; //
GPIOA->CRH|=0X000008B0; //
RCC->APB2ENR|=1<<14; //
RCC->APB2RSTR|=1<<14; //?
RCC->APB2RSTR&=~(1<<14);//
USART1->BRR=mantissa; // ?
USART1->CR1|=0X340C; //
USART1->CR1|=1<<8; //
USART1->CR1|=1<<5; //
MY_NVIC_Init(3,3,USART1_IRQChannel,2);//
}
void UART1_CoorTransmit(u8*buf,u8 len)
{
u8 t;
for(t=0;t<len;t++)
{
while((USART1->SR&0X40)==0)
;
USART1->DR=buf[t];
}
while((USART1->SR&0X40)==0)
;
}
u8 ex[6]={0x01,0x02,0x03,0x04,0X05,0X06};
int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
TIM2_Init();
UART1_Init_Coor(115200);
UART3_Init_Route(115200);
while(1)
{
UART1_CoorTransmit(ex,6);
delay_ms(500);
}
[/mw_shl_code]
根据原子的改的,稍微修改成串口2、3都能成功,但是就是使用串口1不行,单片机发送
[mw_shl_code=c,true]u8 ex[6]={0x01,0x02,0x03,0x04,0X05,0X06};[/mw_shl_code]
调试助手接收到0C 04 14 。请问配置有问题吗?
程序通过串口1转USB烧写的,和这个有关吗?
|