串口初始化的一般步骤:
1.GPIO时钟使能RCC_AHB
2.USART时钟使能RCC_APB
3.USART端口配置(调用GPIO_Init)
4.USART对应引脚复用映射GPIO_PinAFConfig
以PA9、PA10复用USART1为例,具体过程见代码:
//关于时钟使能RCC函数名称的含义:
//AHBx、APBx是总线名称
//寻找相关GPIO口对应的时钟使能函数的技巧:
//在stm32f4xx_rcc.h下查找该GPIO口
void usart_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能GPIO时钟
RCC_AHB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//使能USART1时钟
//USART1端口配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9 | GPIO_PinSource10, GPIO_AF_USART1); //USART1对应引脚复用映射
}
关键字:STM32 串口 初始化
引用地址:
STM32串口初始化
推荐阅读最新更新时间:2024-11-06 13:18
STM32学习笔记一一内存管理
1.简介 内存管理:指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。 内存管理的实现方法有很多种,最终都是要实现两个函数: malloc 和 free。 malloc :函数用于内存申请; free: 函数用于内存释放。 1.1 分块式内存管理原理 由上图可知,分块式内存管理由内存池和内存管理表两部分组成。内存池被等分为 n块,对应的内存管理表,大小也为 n,内存管理表的每一个项对应内存池的一块内存。 内存管理表的项值代表的意义:当该项值为 0 的时候,代表对应的内存块未被占用;当该项值非零的时候,代表该项对应的内存块已经被占用,其数
[单片机]
毕业设计| STM32蓝牙智能小车
+ 功能描述 蓝牙智能小车由STM32微处理器、步进电机、蓝牙,L298N等模块构成的:1)采用STM32微处理器为核心,在MDK环境下进行编程。2)通知控制L298N模块IN1~IN4引脚的高低电平进而控制电机的转动方向,使小车产生不同的转动模式。3)控制小车的转动模式则是通过蓝牙模块来实现,利用手机蓝牙助手和蓝牙模块相通,进而控制小车的各种运转模式。 + 整体框架 下面的图把核心连接部分都画出来了(其他部分按要求接就可以了,Vcc接电源,GND接地即可),图画的有点丑,希望大家不要介意呀( - ) + 硬件设计 1)芯片连接 使用微控制器为STM32F103RC,芯片上所连接的部分: PC10 - IN1;
[单片机]
STM32 uCOS_II 实践 之 消息邮箱
所谓的消息邮箱并不是把数据进行传输,而是在合适的时间告诉任务去使用哪些变量或者当一些特殊的变量变化后可以及时并准确的使用变量,消息邮箱传递的是这些变量的指针,而这些变量本身就已经存在与内存中了,他们多以全局变量或者静态变量的形式存在。 首先介绍消息邮箱的一种使用方式,就是只传递一个非空指针,告诉等待消息的任务他等待的时间到了,但是这个指针里并没有有用的数据,而任务中也不应该对这个地址指向的变量进行任何的读取和写入操作,读写操作都是无意义的,从另外一个角度来看,虽然借用了别人的地址但是本身并没有对地址里的数据进行操作,所以地址里的数据也是安全的,说白了就是消息邮箱版信号量(非计数)。它的好处就是可以在系统里把信号量有关的代码给裁剪掉,
[单片机]
STM32驱动12bit AD TLC2543(I/O模拟方式)
/****************************************************************************************** * 文件名称 :tlc2543.c * 版权 : * 模块名称 :TLC2543驱动程序 * cpu : stm32f103rct6 主频:72M * 作者 : * 创建日期 :2009-10-13 * 功能概要 : *----------------------------------------修改历史------------------------------------------ * 当前版本 :
[单片机]
STM32之DAC君
先来张比如花漂亮的照片、大家请尽情欣赏:因为其够美丽了、所以我就不展现我美丽而销魂的涂鸦了、 鉴赏过之后、我们来看看STM32之DAC的Resume(简历简介): 2个DAC转换器:每个转换器对应1个输出通道 ● 8位或者12位单调输出 ● 12位模式下数据左对齐或者右对齐 ● 同步更新功能 ● 噪声波形生成 ● 三角波形生成 ● 双DAC通道同时或者分别转换 ● 每个通道都有DMA功能 ● 外部触发转换 ● 输入参考电压VREF+ 哇、、哇、、哇、、好多特征呀、、还记得上篇博客中ADC也有很多功能吗?在这里,我觉得,因为其功能多、所以其复杂、、这也没什么奇怪的哈、、 那我
[单片机]
51单片机:串口向电脑发送数据
单片机的串口配置可以使用SCT-ISP软件,方法如下,我的单片机晶振频率是11.0592Hz 试验程序如下: #include regx52.h #include intrins.h unsigned int num; //建立全局变量 void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void
[单片机]
stm32笔记:Systick系统滴答定时器
Systick :系统心跳定时器,提供系统节拍 裸机程序中可作为独立的延时定时器 用途: 1.产生操作系统的时钟节拍 2.便于不同处理器之间程序移植 SysTick定时器被捆绑在NVIC中,异常号15 3.作为一个闹铃测量时间用于测量时间, 但当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作 它有四个寄存器 STK_CSR, 0xE000E010 -- 控制寄存器 STK_LOAD, 0xE000E014 -- 重载寄存器 STK_VAL, 0xE000E018 -- 当前值寄存器 STK_CALRB, 0xE000E01C -- 校准值寄存器 stm32的时钟源 选择外部时钟源时,则Sy
[单片机]
STM32学习笔记之 DS18B20 SEARCH ROM
使用说明,根据MCU不同 用户只需修改4函数 //单总线复位函数 int OWReset(); 单线总线的复位函数,注意这个要做相应修改,如果期间存在要返回1,期间不存在返回0, 直接从总线上读取的是期间存在返回0,不存在返回1 //向总线发送一个字节 void OWWriteByte(unsigned char dat); //向总线发送一位 void OWWriteBit(unsigned char bit_value); //读取总线一位 unsigned char OWReadBit(); 使用时用 int OWFirst();发现第一个单线器件 如果期间存在返回1,并且把ID存在 unsigned char
[单片机]