|
代码如下:
#include "stm32f10x.h "
#include "urst.h"
int main()
{
u16 DIV_Mantissa,DIV_Fraction;
u32 Bound=9600;
float DIV;
GPIO_Configure(); //使能GPIO和USART 配置复用为USART
USART1->CR1 |= (1<<13); //使能UE
USART1->CR1 &= ~(1<<12); //定义字长为8
USART1->CR2 &= ~(3<<12); //设置停止位1位
//求解波特率
DIV = (float)(72*1000*1000)/(Bound*16);
DIV_Mantissa = DIV;
DIV_Fraction = (DIV-DIV_Mantissa)*16;
USART1->BRR = (DIV_Mantissa<<4)|DIV_Fraction;
//求解波特率
USART1->CR1 |= (1<<3); //使能TE
USART1->DR = 'A'; //向DR送入A
return 0;
}
//下面这个函数在usrt.c里面
void GPIO_Configure(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1| \
RCC_APB2Periph_GPIOA , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA , &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA , &GPIO_InitStructure);
}
问题如下:
上面红圈的位置表明应该配置是对的,可是在单步调试时没A出现???
|
|