首页 > 其他分享 >STM32F6xx外设驱动5-uart(寄存器)nulceo144

STM32F6xx外设驱动5-uart(寄存器)nulceo144

时间:2022-11-12 12:15:06浏览次数:38  
标签:uart STM32F6xx bound 2OSPEEDR 0CR1 nulceo144 USART3 2AFR

//源文件

void UartGpioConfig()
{
	RCC->AHB1ENR |= (1<<3);    //使能GPIOD
	RCC->APB1ENR |= (1<<18);   //使能USART3
	RCC->APB2ENR |= 
	
  //PD8  TXD
  GPIOD->MODER |=  (2<<16);  //复用模式
  GPIOD->OSPEEDR |= (2<<16); //High speed
	GPIOD->AFR[1] |= (7<<0);   //AF7
	GPIOD->PUPDR |= (1<<8*2);
	
	//PD9  RXD
  GPIOD->MODER |=  (2<<18);  //复用模式
  GPIOD->OSPEEDR |= (2<<18); //High speed
	GPIOD->AFR[0] |= (7<<4);   //AF7
	GPIOD->PUPDR |= (1<<9*2);
}

void UartCoreConfig(uint32_t bound)
{
   USART3->BRR |= (54*1000000+bound/2)/bound;
	 USART3->CR1 = 0;
	 USART3->CR1 |= 0<<28; //设置 M1=0
   USART3->CR1 |= 0<<12; //设置 M0=0&M1=0,选择 8 位字长
   USART3->CR1 |= 0<<15; //设置 OVER8=0,16 倍过采样
   USART3->CR1 |= 1<<3;  //串口发送使能
	 USART3->CR1 |= 1<<0;    //串口使能
}

void UartPhyConfig()
{
	UartGpioConfig();
	UartCoreConfig(UartBaud);	
}

void UartPhySendByte(uint8_t byte)
{
   USART3->TDR = byte;
	 while((USART3->ISR &(1<<6)) == 0);
}

void UartPhySendString(uint8_t *str)
{
   while(*str)
	 {
	   UartPhySendByte(*str);
		 str++;
	 }
}

//头文件
/*****************************Uart*************************************/
#define  UartBaud   115200

void UartPhyConfig(void);
void UartPhySendByte(uint8_t byte);
void UartPhySendString(uint8_t *str);
/**********************************************************************/

  

标签:uart,STM32F6xx,bound,2OSPEEDR,0CR1,nulceo144,USART3,2AFR
From: https://www.cnblogs.com/lum0126/p/16883416.html

相关文章

  • STM32F6xx外设驱动6-adc(寄存器)nulceo144
    //源文件voidADCPhyConfig(){ RCC->APB2ENR|=1<<8;//使能ADC1时钟 RCC->AHB1ENR|=1<<0;//使能PORTA时钟 //PA5输入模式、下拉、高速GPIOA->MODER......
  • STM32F6xx外设驱动7-dac(寄存器)nulceo144
    //源文件voidDACPhyConfig(){RCC->APB1ENR|=1<<29;//使能DAC时钟RCC->AHB1ENR|=1<<0;//使能PORTA时钟 //PA4输入模式、下拉、高速GPIOA->MODER......
  • STM32F6xx外设驱动4-timer(寄存器)nulceo144
    //源文件voidTimerPhyConfig(){RCC->APB1ENR|=(1<<1);//使能Timer3 TIM3->ARR=arr; TIM3->PSC=psc; TIM3->DIER=(1<<0);//Updateinterr......
  • STM32F6xx外设驱动2-delay(寄存器)nulceo144
    //源文件staticuint32_tfac_us=0;//us延时倍乘数/***@brief初始化延迟函数* 当使用ucos的时候,此函数会初始化ucos的时钟节拍* SYSTICK的时钟......
  • STM32F6xx外设驱动3-rcc(寄存器)nulceo144
    //源文件voidRccPhyConfig(){ uint16_tretry=0; RCC->APB1ENR|=1<<28;//电源接口时钟使能PWR->CR1|=3<<14;//高性能模式,时钟可到180MhzPWR->CR1|=1......
  • STM32F6xx外设驱动1-led(寄存器)nulceo144
    //源文件voidLedPhyConfig(){RCC->AHB1ENR|=(1<<1);//使能GPIOB//LD1GPIOB->MODER|=(1<<0*2);//输出模式GPIOB->OTYPER&=~(1<<0);//推挽......
  • Quartz.NET--JOB作业
    作业流程是在调度器的统一调度下完成的,它可以调度多个作业,触发器提供作业执行的条件(每天8:00am),触发器与作业关联,它们是1:N的关系,1个触发器可以关联1个或多个作业。附带......
  • Quartz-定时任务框架
    一、新建.NETFramework4控制台应用程序 ConsoleApP40二、选择ConsoleApP40右键管理NuGet程序包(N)... 输入 Quartz(为了测试方便请选择2.5.0版本)  添......
  • 开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板
    开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板 发个方便测试I2C、SPI、1Wire接口的工具模块总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换......
  • uart驱动框架及编程方法
    一、UART介绍UART(UniversalAsynchronousReceiver/Transmitter),中文全称为通用异步收发传输器,是一种异步收发传输器,它将要传输的数据通过并行到串行转换后再进行传输。该总......