当前位置:首页 > 单片机 > 单片机
[导读]首先要注意所用到的USART是否用到了复用功能千万别忘了打开复用时钟!!!!!!!!!代码如下:Hello! everyone,welcome to class!#includevoid delay_ms(u16 x){u8 t;while(x--){for(t=0;t

首先要注意所用到的USART是否用到了复用功能

千万别忘了打开复用时钟!!!!!!!!!

代码如下:Hello! everyone,welcome to class!

#include

void delay_ms(u16 x)

{

u8 t;

while(x--){for(t=0;t<120;t++);}

}

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);

}

void uart_init(u32 bound)

{

USART_InitTypeDef USART_InitStructure;//

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);

USART_DeInit(USART3);

USART_InitStructure.USART_BaudRate = bound;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl= USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //

USART_Init(USART3, &USART_InitStructure);

USART_Cmd(USART3, ENABLE);

}

int main(void)

{

u8 tab[]="nHello! everyone,welcome to class!";

u8 i;

GPIO_Configuration();

uart_init(9600);

while(1)

{

for(i=0;i<33;i++)

{

USART_SendData(USART3, tab[i]);

delay_ms(3000);

while((USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET));

}

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭