stm32中一些常用基本库函数以及串口配置步骤

发布者:数据梦想最新更新时间:2018-12-28 来源: eefocus关键字:stm32  库函数  串口配置 手机看文章 扫描二维码
随时随地手机看文章

常用基本库函数:


void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)//使能端口时钟

 

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)//初始化端口,选择端口号,设定参数

typedef struct

{

  uint16_t GPIO_Pin;             //引脚号

                                     

  GPIOSpeed_TypeDef GPIO_Speed;  //速度

 

  GPIOMode_TypeDef GPIO_Mode;    //输出模式

                                     

}GPIO_InitTypeDef;

 

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//设置端口中某引脚高电平

 

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//设置端口中某引脚低电平

 

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//读取输入电平

串口配置的一般步骤:


//需要分别设置传输和接收端口

 

//①时钟使能 

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

//②串口复位 

void USART_DeInit(USART_TypeDef* USARTx);

//③端口模式设置 

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

//USARTx_TX模式设置为复用推挽GPIO Mode_AF_PP;USARTx_RX模式设置为浮空或上拉输入GPIO Mode_IN_FLOATING;

//④串口参数初始化 

void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);

//⑤开启中断并初始化NVIC 

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

typedef struct

{

  uint8_t NVIC_IRQChannel;   //IRQ通道                 

 

  uint8_t NVIC_IRQChannelPreemptionPriority;  //抢占优先级

 

  uint8_t NVIC_IRQChannelSubPriority;      //子优先级

 

  FunctionalState NVIC_IRQChannelCmd;   //通道使能     

} NVIC_InitTypeDef;

void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState);

//⑥使能串口

void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);

//⑦编写中断处理函数

USARTx_IRQHandler();

//⑧串口数据收发

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

typedef struct

{

  uint32_t USART_BaudRate;       //波特率    

 

  uint16_t USART_WordLength;     //字长     

 

  uint16_t USART_StopBits;        //停止位   

 

  uint16_t USART_Parity;          //奇偶校验    

 

  uint16_t USART_Mode;              //发送/接收使能

 

  uint16_t USART_HardwareFlowControl; //硬件流控制

} USART_InitTypeDef;

//⑨串口状态获取

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);

void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);


关键字:stm32  库函数  串口配置 引用地址:stm32中一些常用基本库函数以及串口配置步骤

上一篇:STM32 --UART串口通信
下一篇:STM32的中断优先级和库函数的 开、关总中断

推荐阅读最新更新时间:2024-03-16 16:21

STM32之CAN控制器
1、CAN只具有CAN_High和CAN_Low两条信号线,CAN是以差分信号的形式进行通信的; 2、CAN通信有两种网络:一种是遵循ISO11898标准的高速短距离闭环网络,它的总线最大长度为40m,通信速度最高位1Mbit/s;另外一种是遵循ISO11519-2标准的低速远距离开环网络,最大传输距离为1km,最高通信速率为125kbit/s。 3、CAN的通信节点由一个CAN控制器、一个CAN接收器组成;STM32的CAN接口即为CAN控制器,为了构成完整的节点,还要外接一个CAN收发器。 4、差分信号,即信号的逻辑0和逻辑1由两根差分信号线的电压差来表示。 ISO11898规定CAN协议中处于逻辑1(隐性电平)时,CAN_H
[单片机]
STM32存储器 — <3> STM32实现IAP
在对STM32存储器结构及相关知识了解后,我们就可以进行IAP的设计了。 在上一篇笔记中,进行了一个简单的IAP程序结构,以及和User App程序的相互联系的系统设计。 本篇对IAP实现的细节进行了较为详细的论述,包括源码结构的设计;我们从上位机(PC C#)和下位机(MCU C)共同描述IAP功能的实现过程。 1 STM32的IAP实现平台 IAP功能的实现需要两个方面(上位机和STM32上的IAP程序)的密切合作。因此,我们除了需要知道STM32芯片上的IAP程序结构,我们还需要了解上位机的程序结构,这样才能使上位机和STM32很好的相互工作。 下位机(指的是STM32构成的单片机系统): 本下位机系统使用C语言进行
[单片机]
STM32低功耗模式---停机和待机模式
已经在STM32F103下测试: 进入低功耗模式先执行: RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //复位所有IO口, 端口全设置为高阻态,最好外设时钟也关闭 停机模式: RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟 /*进入停机模式, 停机模式还有两个选择模式,一个是调节器电压,可选常规或低压,低压在停机模式下功耗会更低,但是唤醒响应速度会慢一些;令一个唤醒方式的选择,可选事件唤醒、外部中断唤醒, 其实两者均可。*/ PWR_EnterSTOPMode(PWR_Regulator
[单片机]
<font color='red'>STM32</font>低功耗模式---停机和待机模式
STM32的SWD下载模式
之前一直用的JTAG下载,最近使用了下SWD模式。SW模式使用了5个引脚,NRST :复位 SWCLK:串行线时钟 SWDIO:串行线调试数据输入/输出,另外的为 GND 和VCC SWD模式的优势:SWD 模式比 JTAG 在高速模式下面更加可靠. 在大数据量的情况下面 JTAG 下载 程序会失败, 但是 SWD 发生的几率会小很多. 基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 比较方便,并且引脚比较少,便于集成。
[单片机]
<font color='red'>STM32</font>的SWD下载模式
STM32 Nor Flash DFU
次要讲讲怎么实现Nor Flash的升级。 Nor Flash的DFU工程还是基于之前的flash DFU的工程上修改而来。工程的目录如下: STM32 Nor Flash DFU - ziye334 - ziye334的博客 我使用的Nor Flash芯片是M29W128F, 该芯片共有128Mb的空间,通过FSMC挂接在BANK0。 正好在UBS的官方程序里也有使用芯片的例子,所以也就是说管方的Nor Flash的驱动代码是使用 M29W128F这款芯片的。所以我们需要从拷贝fsmc_nor.c和fsmc_nor,h这两个文件添加到我们的USB_User这个组中。还要讲我们之前的flash_if文件修改为nor_if名。这
[单片机]
轻松掌握stm32直流电机驱动与测速
  说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习stm32的人那么多!!!   进入我们今天的主题,今天给大家介绍的是stm32中一个很小但是比较实用的stm32直流电机驱动与测速,话不多说先给大家上一段直流电机控制的代码。   void pwm_ARRPreloadConfig(void)   {   PrescalerValue = (uint16_t) (SystemCoreClock /TIM2_rate) - 1; //设定的是定时器的频率,要设定pwm的频率为50hz
[单片机]
STM32的中断使用介绍
一、前言 中断是什么?举个例子来说,当我们正在工作时,突然电话响了,这时你会把手里的工作先停下来,然后去接电话,当接完电话后,电话里的人安排你马上做一件事,这时你需要立刻去做这件事,当把这件事做完后你会继续之前被打断的工作,这个过程为一次中断。 在计算机科学中,中断指计算机CPU获知某些事,暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后再继续执行之前的程序。整个过程称为中断处理,简称中断,而引起这一过程的事件称为中断事件。中断是计算机实现并发执行的关键,也是操作系统工作的根本。中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换。 后续将从以下图1中所示
[单片机]
<font color='red'>STM32</font>的中断使用介绍
从STM32F4的库函数分析如何实现点亮一个LED(代码启动)(二)
这部分的启动代码,主要是将堆栈进行初始化,中断向量表以及中断函数进行定义。 这里将启动文件拆分出来进行理解。 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp 这里将申请一段栈空间,AREA意思为申请的空间名为STACK,不对其进行初始化,可读可写,以三字节进行偏移,栈大小为 0x400 ; h Heap Configuration ; o Heap Size (in Bytes) 0x0-0xFFFFFFFF:8 ;
[单片机]
从STM32F4的<font color='red'>库函数</font>分析如何实现点亮一个LED(代码启动)(二)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved