STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)——CubeMx生成初始代码

关键词:STM32F103C8T6 CubeMX UART 详细程序设计

1.开发环境

(1)STM32CubeMX,版本:4.27.0,截止写稿时,最新版本已到6.0.1,但孔丙火(微信公众号:孔丙火)实在是用不习惯版本5以后的界面,所以还继续用4版本的。

图1-1

(2)MDK(Keil),版本:5.17,有部分朋友用的还是4版本的,建议升级到5,在5下装一个兼容包,就可以用5打开4版本的程序。

2.CubeMx配置及代码生成

(1)新建CubeMX工程

孔丙火(微信公众号:孔丙火)认为,这一步比较简单,点击初始界面中的New Project,在后面出现的配置窗口中,搜索STM32F103C8,选择这个器件,然后点击Start Project就可以了。

(2)按照图1-2和1-3设置外设和端口。

图1-2

图1-3

(3)按照图1-4配置系统时钟

我用的是12M的外部晶振,图中两个红框处配置一下,其他按照默认即可。注意一下APB1 Timer clocks的值是多少,这个在后面配置定时器时需要用到,原因见图1-5,TIM2使用的是APB1的时钟。

图1-4

图1-5

(4)USART1和TIM2的参数配置,见图1-6。

UART的参数配置见图1-7,需要注意word length这一选项,括号里有个including parity,意思是说包含奇偶校验位,孔丙火(微信公众号:孔丙火)要着重强调一下,如果是无校验,那这个参数就是数据长度,如果是奇校验或偶校验,那个这个参数就是实际的数据长度+1,这个不要弄错了,否则通信会出问题。图1-8中的那个USART的中断要打勾,已启用中断。

图1-6图1-7图1-8图1-9

图1-9是TIM2的参数设置,设置每个计时周期为50us,TIM2采用的是APB1的时钟,即12MHz,则计算公式为:

,x为Prescaler的数值+1,可以计算得到:x = 600,Counter Period设为35-1,则TIM2每进一次中断的周期为:1750us,之所以这样设置,孔丙火(微信公众号:孔丙火)主要是为以后的Modbus设计做准备。图1-10中的TIM2的红框需要打勾,以启用TIM2的中断。

图1-10

图1-11

完成以上设置后,点开STM32CubeMx的project settings选项,按照图1-11和图1-12的提示设置。然后按照图1-13的提示生产即可生产工程代码,孔丙火(微信公众号:孔丙火)使用的是MDK V5。使用V4版本的朋友建议升级到V5,看到有的朋友使用V5时带不开V4的工程,只要装一个兼容包,就可以了,不会弄的朋友可以在公众号留言。

图1-12

图1-13

更多相关及后续内容,请关注微信公众号:孔丙火查看。

文章在微信公众号同步推出,微信公众号:孔丙火,关注欣赏更多文章。

STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)——CubeMx生成初始代码的更多相关文章

  1. STM32F103C8T6-CubeMx串口收发程序详细设计与测试(2)——程序规划、代码编写及测试

    摘要:演示程序的功能:通过中断接收串口数据,在1750us时间内没有收到新的字节的话,将收到的数据原封不动地发送出去,以测试串口的完整收发流程.对使用到的函数进行了说明,阐述了各个函数的调用顺序和调用 ...

  2. MSP430F149串口收发程序的学习(一)

    首先将用到的IO口设置为第二模式: ①使用串口USART0则设置P3.4 P3.5 ,使用USART1则设置P3.6,P3.7 (P3SEL |= BIT3+BIT4:P3SEL |= BIT6+BI ...

  3. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  4. [连载]《C#通讯(串口和网络)框架的设计与实现》- 10.宿主程序详细设计

    目       录 第十章           宿主程序详细设计... 2 10.1        配置文件设计... 3 10.2        加载设备驱动... 4 10.3        加载 ...

  5. stm32串口收发导致的死机

    stm32串口收发导致的死机 很久以前有偶尔遇到过串口死机的情况,那是当时的我写出来的代码自己都觉得有问题,也就没注意.用了stm32做项目以后也就没遇到过了,今天做了个高压测试,每5ms定时发送一次 ...

  6. [ZigBee] 8、ZigBee之UART剖析·二(串口收发)

    前言:上一节讲UART基本知识介绍完了,并深入剖析了一个串口发送工程,本节将进一步介绍串口收发! 1.初始化 在串口初始化部分,和上一节不同的地方是: 51 U0CSR |= 0x40; //允许接收 ...

  7. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  8. C语言PIC16 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC16 Boot ...

  9. C#--简单的串口通信程序

    前几天做毕业设计,其中要用到串口和下位机进行通信,于是自己捣鼓了一个简单的串口通信程序. 在做通信之前要先弄一个SerialPort组件出来,当然也可以通过程序来创建.本次设计中采用的是拖的winfo ...

随机推荐

  1. unity webview

    uniwebview http://uniwebview.onevcat.com/manual Unity3D研究院之在Android中打开WebView(三十) http://www.xuanyus ...

  2. Mono嵌入C++

    http://docs.go-mono.com/index.aspx?link=xhtml%3Adeploy%2Fmono-api-embedding.html https://www.mono-pr ...

  3. 实际项目中遇到EF实体类的操作问题及操作方法

    之前一直做ASP,都是直接写数据库操作语句,但是现在使用linq或者EF了,具体数据库操作不会了,遇到几个问题,然后经过查找资料解决了,记录一下. 一.遇到序列化问题 遇到循环引用问题,我的项目是一个 ...

  4. 用 Shader 写个完美的波浪

    前言 皮皮最近接到了一个小需求: 美术小姐姐:皮皮皮皮,你能不能做奶茶? 我:??? 美术小姐姐:就是那种,奶茶的轮廓加上动态水波纹~

  5. 用Maven给一个Maven工程打包,使用阿里云镜像解决mvn clean package出错的问题,使用plugin解决没有主清单属性的问题

    本来在STS里做了一个极简Maven工程,内中只有一个Main方法的Java类,然后用新装的Maven3.6.3给它打包. 结果,Maven罢工,输出如下: C:\personal\programs\ ...

  6. TP6.0 一对一模型关联 hasOne

    本文测试关联方法都采用预载入查询 $data = User::with('profile')->select(); halt($data->toArray()); 1. 创建数据表 -- ...

  7. 使用fiddler和安卓模拟器抓取安卓客户端数据包

    安卓模拟器要选可以桥接网络的,本文中用的是雷电模拟器. 软件的安装都很简单,在此不再赘述. fiddler中的设置 首先,打开fiddler,点击Tools选项卡下的Options. 切换到https ...

  8. jzoj 3567. 【GDKOI2014】石油储备计划

    Problem Description Input Output 对于每组数据,输出一个整数,表示达到"平衡"状态所需的最小代价. Data Constraint 对于20%的数据 ...

  9. 顶 最新简捷实用的JSP动态网站环境搭建详细步骤

    阿里西西小编给您推荐这个最新简捷实用的JSP动态网站环境搭建详细步骤讲解,这里还有关于JSP 动态网站 环境 搭建 的教程,希望您能够喜欢并学到东西提升自己的知识与技能,下面是内容详细阅读: 最新简捷 ...

  10. python2与python3同时安装

    安装步骤: 下载 1.第一步先下载python2和python3的安装包,下载地址:https://www.python.org/downloads/windows/ 下载之后,分别给python2和 ...