Uart初始化配置
本文最后更新于170 天前,其中的信息可能已经过时,如有错误请发送邮件到 2871065713@qq.com

在项目文件夹/usr目录下新建uart文件夹,新建duart.h,duart.c文件,在项目中新建uart并将.c和.h加入到uart下。

在stm32f10x_conf.h中将include “stm32f10x_usart.h”取消注释

下面分别是duart.h和duart.c。

//duart.c

#include "duart.h"

void DUartInit(void)
{
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef  GPIO_InitStruct;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_9;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

    USART_InitStructure.USART_BaudRate            = 115200;
    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_Tx;
    USART_Init(USART1, &USART_InitStructure);
    USART_Cmd(USART1, ENABLE);
}

void Uart_Putchar(char ch)
{
    USART1->DR = ch;
}
//duart.h
#ifndef DIO_DUART_H
#define DIO_DUART_H

#include <stm32f10x.h>

void DUartInit(void);
void Uart_Putchar(char ch);

#endif

在main.c中需要引入duart.h头文件并初始化

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "led.h"
#include "qsystick.h"
#include "duart.h"

//#define S_GPIOB_BASE 0X40010C00
////#define S_CRL S_GPIO_BASE + 0x00
////#define S_ODR S_GPIO_BASE + 0x0C
//#define S_GPIOB ((GPIOA_PORTTypeDef*)S_GPIOB_BASE)

//typedef struct{
//	uint32_t CRL;
//	uint32_t IDR;
//	uint32_t ODR;
//	uint32_t BSRR;
//	uint32_t BRR;
//	uint32_t CKR;
//}GPIOA_PORTTypeDef;
//	
//void delay_ms(uint32_t ms){
//	uint32_t count = 10000;
//	
//	while(ms --){
//		count = 10000;
//		while(count --);
//	}	
//}
//int main(void)
//{
//    uint32_t temreg = 0;

//    /* GPIOB Periph clock enable */
//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

//    temreg = S_GPIOB->CRL;
//	  temreg &= 0xFF0FFFFF;
//		temreg += 0x00200000;
//		S_GPIOB->CRL = temreg;
//	
//		temreg = S_GPIOB->ODR;
//		temreg &= 0x0EF;
//		S_GPIOB->ODR = temreg;

//    while(1);
//}

int main(void)
{
	SysticInit();
	LedInit();
	DUartInit(); 
	
	while(1){
		Uart_Putchar('.');
		Led2_blink();
		DelayMs(500);
	}
}
文末附加内容
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇