关键词不能为空

当前您在: 主页 > 英语 >

STM32-USART1学习笔记

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:41
tags:

-

2021年2月1日发(作者:英语基础知识)


STM32


学习笔记——之


USART1




三个


USART



USART1


位于高速


APB2


总线上,


USART2


3


位于


APB1


总线上



学习环境:



STM32


芯片:


STM32F103VBT 6


开发板:万利


STM3210B-LK1


USART1


引脚






PA9


——


USART1 TX





PA10


——


USART1 RX



1



USA RT1



PC


串口通信(


STM32


串口发送)



首 先需要进行


USART1


的配置,方可实现串口通信功能



USART1


配置(使用

< br>STM32


固件库


V2.0


)< /p>




①开启


US ART1


时钟以及


GPIOA


端口时钟



RCC_APB2PeriphClockCmd(RCC_ APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);


②配置


USART1



RX



PA10


)引脚以及< /p>


TX



PA9


) 引脚



首先定义结构体变量,用来配置相应引脚的速度以及输入 输出模式



GPIO_InitTypeDef



GPIO_InitStructure;


/***********************************


结构体声明如下



typedef struct


{






u16 GPIO_Pin;






GPIOSpeed_TypeDef GPIO_Speed;






GPIOMode_TypeDef GPIO_Mode;


}GPIO_InitTypeDef;


************************************/ < /p>


配置


USART1


RX



PA10


)引脚

< p>


GPIO__Pin = GPIO_Pin_10;


GPIO__Mode = GPIO_Mode_IN_FLOATING;



//


浮空输入



GPIO_Init(GPIOA, &GPIO_InitStructure);


配置


USART1


< br>TX



PA9


)引脚

< p>


GPIO__Pin = GPIO_Pin_9;






GPIO__Speed = GPIO_Speed_50MHz;






GPIO__Mode = GPIO_Mode_AF_PP;



//


复用推挽输出







GPIO_Init(GPIOA, &GPIO_InitStructure);


③配置


USART1


的波特率、数据位 数、停止位、校验以及硬件流控制



首先定义结构体变量







USART_InitTypeDef



USART_InitStructure;


/****** **************************************


/* USART Init Structure definition */


typedef struct


{




u32 USART_BaudRate;




u16 USART_WordLength;




u16 USART_StopBits;




u16 USART_Parity;



1




u16 USART_Mode;




u16 USART_HardwareFlowControl;




} USART_InitTypeDef;


******************** ************************/






USART__BaudRate = 9600;




//


波特率


--9600






USART__WordLength = USART_WordLength_8b; //


数据位数


- -8








USART__StopBits = USART_StopBits_1;



//

< p>
停止位



1


< p>






USART__Parity = USART_Parity_No;





//


无校验



USART__HardwareFlowControl


=


USART_HardwareFlowControl_None;


//


无硬件


流控制



USART__Mode = USART_Mode_Rx | USART_Mode_Tx;


USART_Init(USART1, &USART_InitStructure);


④使能


USART1


USART_Cmd(USART1, ENABLE);


自 此上面四步即可实现


USART1


串口配置



1


)利用

STM32


固件库实现


USART1


串口发送功能



实现


USART1< /p>


配置后,即可实现串口通信功能,在此下面程序实现了


USART 1


串口发送功能



CPU_INT08U TxBuffer[] =


TxBu ffer[]



USART1


准备发送 到


PC


的字符串,此发送程序通过


UC OS-II


建立任务实现,发送函数使



STM32


固件库


V2.0


中的发送 函数实现,任务程序如下



static void Task3Usart1(void *pdata)


{


CPU_INT08U TxCounter = 0;


pdata = pdata;






while(1)






{










while(TxCounter < strlen(TxBuffer))











{














USART_SendData(USART1, TxBuffer[TxCounter++]);



//


串口发送函数















while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)














{}




//


等待串口发送寄存器为空











}










TxCounter = 0;










OSTimeDly(OS_TICKS_PER_SEC);



延时,实现任务切换







}


}



本 节实现了使用


STM32


固件库实现


U SART1


的配置以及通过固件库的发送函数实现串口发送功能;




2


)利用


printf


函数实现


USART1



PC


发送数据



首先将


Project->Options->General Options->Library Configuration->Library


下拉列表框中选为


FULL


其次进行宏定义,并包含头文件


#include


#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)


再次将


printf


函数进行修改,将其指向


USART1


PUTCHAR_PROTOTYPE


{



2

-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:41,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595867.html

STM32-USART1学习笔记的相关文章