STM32F407VGT6代码烧进去串口助手不显示现象,是我代码错了吗
uart.c代码
void Uart_Init(u32 a)
{
double USARTDIV=0.0;
u32 MAN_DIV=0;
u32 FAR_DIV=0;
RCC->AHB1ENR|=(0x1<<0);
GPIOA->MODER&=(0xf<<18);
GPIOA->MODER|=(0xa<<18);
GPIOA->AFR[1]&=(0xff<<4);
GPIOA->AFR[1]|=(0x77<<4);
RCC->APB2ENR|=(0x1<<4);
USART1->CR1=0;
USART1->CR1|=(0x1<<3);
USART1->CR1|=(0x1<<2);
USART1->CR2&=~(0x3<<12);
USARTDIV=84000000.0/a/16;
MAN_DIV=USARTDIV;
FAR_DIV=(USARTDIV-MAN_DIV)*16+0.5;
USART1->BRR=MAN_DIV<<4|FAR_DIV;
USART1->CR1|=(0x1<<13);
}
void Uart_Send(u8 *b)
{
while((*b)!='\0')
{
while(!(USART1->SR&(0x1<<7)));
USART1->DR=*b;
b++;
}
}
main.c
int main(void)
{
Led_Init();
Uart_Init(9600);
USART1->DR='A';
Uart_Send((u8 *)"张鹏");
}
uart.h
#ifndef UART_H
#define UART_H
#include "stm32f4xx.h"
void Uart_Init(u32 a);
void Uart_Send(u8 *b);
#endif
是不是发的太快你没来得及开串口调试助手,你这样改一下while(1)
{
发送函数
}让他一直发看看能看到吗,如果还不行就仿真一下