STM32的串口1和串口2測試


留個記號,方便自己查看,也方便他人參考!!STM32F103用的IAR編譯器

網上的教程搞得太復雜了,我的可能更簡單!!

main.h內文件:

#include <stm32f10x.h> //使用外部HSE.8M,經過PLL倍頻到72M
#include <misc.h> //嵌套中斷控器,SYSTICK定時器
#include <stm32f10x_it.h> //管理中斷服務函數

#include <stm32f10x_conf.h>

void GPIOx_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);       //0 打開GPIOA的外設時鍾
GPIO_InitTypeDef GPIO_InitStructure1 = {    GPIO_Pin_2|GPIO_Pin_9, //1 參數PIN2 PA2是UART2的TX引腳, PA9是UART1的TX引腳.
                    GPIO_Speed_10MHz,       //2 參數2M速度
                    GPIO_Mode_AF_PP };      //3 參數復用推挽輸出用Out_PP不行的 要用AF_PP復用模式
GPIO_Init(GPIOA, &GPIO_InitStructure1);                                               //4 將3個參數初始化到GPIOA
}

void USARTx_Config(void)
{  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);// 打開串口2的外設時鍾
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);// 打開串口1的外設時鍾
                                                                        //6個參數設置
USART_InitTypeDef USART_InitStructure = {       115200, //串口2波特率設置
                      USART_WordLength_8b,         //數據長8BIT
                      USART_StopBits_2,                //停止位是2BIT
                      USART_Parity_No,                 //無校驗位
                      USART_Mode_Tx,                 //TX發模式
                      USART_HardwareFlowControl_None };//硬件流控制NONE
USART_Init(USART2, &USART_InitStructure);     //將6個參數初始化到串口2
USART_Cmd(USART2, ENABLE);                        //配好后打開串口2外設,
USART_ITConfig(USART2, USART_IT_TC,DISABLE); //關掉UART2的中斷,RA2為TX引腳。

USART_Init(USART1, &USART_InitStructure);     //將6個參數初始化到串口1
USART_Cmd(USART1, ENABLE);                        //配好后打開串口1外設,
USART_ITConfig(USART1, USART_IT_TC,DISABLE); //關掉UART1的中斷,RA9為TX引腳。
}

 

void Delay(__IO uint32_t nCount)//精略的延時功能
{
for(; nCount != 0; nCount--);
}

 

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

main.c內文件測試

#include "main.h"
#include <stdio.h>
#include <string.h>

void
main(void)
{

USARTx_Config(); //初始化USARTx
GPIOx_Init(); //初始化GPIOX 

while (1)
{
USART_SendData(USART2, 0xAA);//RA2輸出
Delay(60000);//精略延時。
USART_SendData(USART1, 0x55);//RA9輸出
__NOP();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM