485串口驱动_STM32f103单片机(三)——串口

关于串口,基础的应该都知道,波特率,校验位,停止位,双向通信接收端连接发送端,发送端连接接收端,两个不同设备通信的时候要共地。485、232、422都是由串口驱动的,只是他们的传输电平不一样。经过了前面IO口的设置以及中断的配置之后,感觉再驱动中断普通的接收和发送就没有那么的吃力了,关于复杂的用法设置我这里就不总结了。这里要注意的是USART1应用的是APB2时钟,USART2、USART3、UART4、UART5应用的是APB1时钟。

c798532979650c74a8dac6f24cbc901c.png

继续看给我们的库函数,这一个涉及到的库函数是与串口相关的库函数stm32f10x_usart.c

652fa427240e483a2f3723e093369a14.png

59da1fc7c2ec04c1e4c202481fc96b7f.png

对于串口,它在接收和发送的时候也可以设置为中断,这样就应用到我们之前的设置方法。这里我以设置串口为普通的发送,接收为外部中断,接收之后进行发送为例进行总结。下面是串口编写的流程图。

834270837c526dc417cbf54929de9693.png

根据流程图一步步进行设置。

1f6235e23250eaa728f2d9874fb31135.png

1、设置系统时钟

01ab18d32f4a98457d3b4d37bdff4634.png

1f6235e23250eaa728f2d9874fb31135.png

2、设置与串口相关的IO口

0f0b8b2a4d333e70ade9a05763bd1eff.png

包括时钟,输入输出设置

1f6235e23250eaa728f2d9874fb31135.png

3、对串口的初始化

0ed8c91b5b5eb18bac295cae9dc84514.png

这里没有重应设和复用的设 置,设置好了就可以直接用了。

1f6235e23250eaa728f2d9874fb31135.png

4、设置接收为接收中断

5da86ccb4322a9ab8c5a52071fe0995b.png

1f6235e23250eaa728f2d9874fb31135.png

5、设置串口中断,并设置优先级

2e50ec9c682cabc74ad4e5a2a0511127.png

1f6235e23250eaa728f2d9874fb31135.png

6、开启串口

27486dfc9e3330f2c32a93dafee2719d.png

1f6235e23250eaa728f2d9874fb31135.png

7、编写中断服务函数

如果接受到了数据就将数据发送出去

c0efd03910d80c17bb938b2377f6db2b.png

1f6235e23250eaa728f2d9874fb31135.png

8、关联中断服务与中断响应函数

在stm32f10x.h中添加函数void UART_TRxOver_Interrupt(void);在stm32f10x.c的串口中断入口中添加UART_TRxOver_Interrupt();

6b6973a799e3d53ca509fdab87b163ee.png

这样中断就可以用了。

1f6235e23250eaa728f2d9874fb31135.png

9、发送数据

    在主函数中可以调用 函数来发送一个字节的数据,但是如果发送快了就会出现乱码,这是因为数据还没有发送完又要发送下一位,所以导致出现乱码,这么时候可以调用 函数监测是否发送完成,如果发送完成则跳出函数。所以我对发送字节的函数进行了重新封装。

44f99bc945f76db3745f50839ad504ba.png

后面也可以封装成发送字符串的函数。

315cf78ab02f20effca82c120691f7c4.png

好了,今天就总结在这里了。

往期回顾

◆STM32f103单片机(一)——新建工程+IO总结

◆STM32f103单片机(二)——外部中断总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于STM32F103RC和I2C接口的MLX90621工程是一个项目,通过串口输出数据显示在PC工具上。在STM32单片机中,每个IO引脚的最大电流都是有限的。对于一些简单的单片机,例如STC89C51RC,可能没有集成上拉电阻或下拉电阻,需要在电路中额外添加。但是对于大多数高级控制芯片,例如STC15W408AS,都会集成上拉或下拉电阻。 关于MLX90640_STM32F103RC,你提到了一个不完整的名称,无法提供更多信息。如果你有具体的问题或需要更多细节,请提供完整的名称和具体的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32F103RC_MLX90621.rar](https://download.csdn.net/download/lwjian147/12200841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [stm32设置内部上拉电阻_比较全面的电阻上、下拉介绍](https://blog.csdn.net/wjy397/article/details/123068889)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值