初中生
最后登录1970-1-1
在线时间 小时
注册时间2021-3-25
|
用usart1发送数据(pa10位接收,pa9为发送)对pa10和pa9进行初始化
#include"led.h"
void led()
{ GPIO_InitTypeDef ledz ;
GPIO_InitTypeDef ledz10;
ledz.GPIO_Mode=GPIO_Mode_AF_PP;
ledz.GPIO_Pin=GPIO_Pin_9;
ledz.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init( GPIOA, &ledz );
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );
ledz10.GPIO_Mode=GPIO_Mode_IN_FLOATING ;
ledz10.GPIO_Pin= GPIO_Pin_10;
GPIO_Init( GPIOA, &ledz10 );
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );
}
对usart初始化和编写发送函数。
include "usart.h"
void nvic();
void usartint()
{ USART_InitTypeDef usart;
RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1,ENABLE);
usart.USART_BaudRate=9600;
usart.USART_HardwareFlowControl=USART_HardwareFlowControl_None ;
usart.USART_Mode=USART_Mode_Rx|USART_Mode_Tx ;
usart.USART_Parity=USART_Parity_No ;
usart.USART_StopBits=USART_StopBits_1 ;
usart.USART_WordLength=USART_WordLength_8b ;
USART_Init(USART1, &usart );
nvic();
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_Cmd(USART1,ENABLE );
}
void nvic()
{NVIC_InitTypeDef nvicint;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
nvicint.NVIC_IRQChannel=USART1_IRQn;
nvicint.NVIC_IRQChannelCmd=ENABLE;
nvicint.NVIC_IRQChannelPreemptionPriority=1;
nvicint.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&nvicint);
}
void send(uint8_t Data)
{
usartint();
USART_SendData(USART1,Data);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);
}
主函数
#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
int main()
{ led();
send('A');
while(1);
}
|
|