标题:
这是我做的PC串口通信与STM32交互
[打印本页]
作者:
chease
时间:
2018-12-10 19:06
标题:
这是我做的PC串口通信与STM32交互
这是我做的PC端与串口交互
单片机源程序如下:
#include "stm32f10x.h"
void USART1_Init(void)
{//串口参数初始化与使能时钟和GPIO端口初始化和GPIO口时钟使能
GPIO_InitTypeDef GPIO_InitUSA;
USART_InitTypeDef USART_InitUSA;
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA
RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1,ENABLE);//使能串口1
GPIO_InitUSA.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitUSA.GPIO_Pin = GPIO_Pin_9;
GPIO_InitUSA.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init (GPIOA,&GPIO_InitUSA);//串口1的TX引脚,设置为推挽复用输出
GPIO_InitUSA.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitUSA.GPIO_Pin = GPIO_Pin_10;
GPIO_InitUSA.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init (GPIOA,&GPIO_InitUSA);//串口1的RX引脚,设置为上拉模式
USART_InitUSA.USART_BaudRate = 9600;
USART_InitUSA.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitUSA.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitUSA.USART_Parity = USART_Parity_No;
USART_InitUSA.USART_StopBits = USART_StopBits_1;
USART_InitUSA.USART_WordLength = USART_WordLength_8b;
USART_Init(USART1,&USART_InitUSA);
USART_Cmd (USART1,ENABLE);//使能串口
USART_ITConfig (USART1,USART_IT_RXNE,ENABLE);//开启串口1的接收中断
}
void Init_NVIC(void)//Usart1 NVIC配置
{
NVIC_InitTypeDef NVIC_InitUSA;
NVIC_InitUSA.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitUSA.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitUSA.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitUSA.NVIC_IRQChannelSubPriority = 1;
NVIC_Init (&NVIC_InitUSA);
}
int main(void)
{
USART1_Init ();
Init_NVIC ();
while(1)
{
}
}
void USART1_IRQHandler(void)
{
unsigned char code;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
code=USART_ReceiveData(USART1);
USART_SendData (USART1,code);
}
}
复制代码
所有资料51hei提供下载:
串口简单通信.rar
(299.42 KB, 下载次数: 29)
2018-12-10 20:40 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1