基于STM32的物联网项目经验总结与技术分享(一:串口通信)(1)

第一个问题,怎么初始化串口

讲怎么初始化串口之前,先说下什么是初始化吧,即对即将使用到的资源的各种属性按照你的需求,在其可供选择的范围之内进行设置,使得每次运行程序使用该资源的时候,他都可以按照你的设置去工作。

现在讲讲怎么初始化,串口,使用它进行信息收发,那势必会使用到两个引脚,Tx和Rx,那么我们得先学会引脚的初始化,即GPIO的初始化。GPIO有什么属性我们一一来看,首先是他的速率,其次是他的8种模式,以及管脚号,这是他的属性,初始化不止这些,在设置属性之前先要给他使能,那么知道它在哪个总线上是必须的(后续有详细介绍),可以通过编辑器查看,也可以记下来,使能完成以后,就用一个结构体完成对他的初始化吧,代码如下:

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能时钟
  
  GPIO_InitTypeDef GPIO_InitStruct;//用结构体初始化其属性
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5; //管脚号
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;//模式,其余几种稍后详解
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//速率
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//一般用不到
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;//一般用不到
  GPIO_Init(GPIOA, &GPIO_InitStruct);//到这里就完成了

这是刚提到的八种GPIO_MODE,简单介绍一下

STM32的GPIO模式有以下8种:
typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;(这是keil里的结构体,下面是我带有解释性的模式)
1. 输入模式(Input mode)
当GPIO配置为输入模式时,它将读取外部信号,并将其传输到CPU或其他系统级组件。该模式具有低功耗和高稳定性的特点。
2. 输出模式(Output mode)
当GPIO配置为输出模式时,它将向外部设备或其他系统级组件发送信号。这个模式可以用于驱动LED,马达,蜂鸣器等外部设备。该模式具有较高的稳定性,低功耗和高灵活性。
3. 复用模式(Alternate mode)
当GPIO配置为复用模式时,它将多个外设连接到同一个GPIO引脚上。每个外设都对应特定的GPIO模式。例如,UART通信使用不同的GPIO模式进行收发信号的复用。该模式具有较高的可扩展性和灵活性。
4. 模拟模式(Analog mode)
当GPIO配置为模拟模式时,它将成为模拟输入或输出引脚,用于输入或输出模拟电信号。该模式适用于模拟信号需要传输的场合,具有较高的精确度和可靠性。
5. 推挽输出模式&

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值