嵌入式作业(七)

  • 0 作业要求
  • 1 Ardunio 完成STM32的串口通信
    • (1)安装Ardunio IDE
    • (2)stm32串口通信
  • 2 基于串口通信的标准库与hal库的区别
    • (1)hal库
    • (2)代码
  • 3 关于 stduino IDE

0 作业要求

  1. 安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序:
    (1)持续向串口输出“Hello world!”;
    (2)当接收到“stop!”时,停止输出。
  2. 分析基于标准库函数与基于HAL库函数的stm32编程方式的差异。
  3. 网上有一个国人版的MCU集成开发平台, stduino IDE(http://www.stduino.com/pindex.php),请试玩之,然后谈一下体会

1 Ardunio 完成STM32的串口通信

(1)安装Ardunio IDE

Ardunio IDE

  • arduino ide是一款专业的arduino开发工具,主要用于arduino程序的编写和开发,拥有开放源代码的电路图设计、支持ISP在线烧,同时支持Flash、Max/Msp、VVVV、PD、C、Processing等多种程序兼容的特点。

(1)下载ardunio ide安装包
(官网下载速度较慢,建议使用其他下载途径)
(2)解压后,按照提示步骤安装

(3)将stm32固件库放入hardware文件夹下

(4)打开Arduino IDE,配置开发环境

  • 下载安装Arduino SAM开发板


  • 选择硬件类型(第一行)、下载方式(第三个)

    下载方式有串口、stlink 、jlink等,这里选择的是串口方式

(2)stm32串口通信

  • 连接硬件
    我使用的是野火mini开发板,直接用usb转串口相连即可

  • 选择端口

  • 选择例程

  • 修改代码
    (setup函数无需修改)

void loop()
{while(Serial1.available() > 0)  {rString = Serial1.readString();  //将接收数据存到接收字符串里    }if (rString == Stop_flag){flag = 0; //表明停止发送}if (flag == 1){Serial.println("Hello World");delay(1000);}}
  • 下载程序
  • 串口通信

2 基于串口通信的标准库与hal库的区别

(1)hal库

HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发。同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,而使用HAL库,只要使用的是相通的外设,就可以直接进行移植。

(2)代码

串口通信代码区别(发送数据)
标准库:

for(t=0;t<len;t++)
{USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}

hal库

HAL_UART_Transmit(&UART1_Handler,(uint8_t*)USART_RX_BUF,len,1000);   //发送接收到的数据
while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET);      //等待发送结束

比较发送的函数,可明显看出hal库的函数要简洁一些,少了循环过程。

3 关于 stduino IDE

  • Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
  • 它的软件界面如下图,和vs code 比较像,但是都是中文,且由于是国人开发,所以它的官方教程也是中文的,也有比较丰富的教学资源。


但是,在官方论坛可以看出,它的用户人数较少,使用时遇到问题不能像keil一样得到解答

嵌入式作业(七):基于Ardunio的STM32串口通信相关推荐

  1. 嵌入式作业(六):STM32串口通讯

    目录 一.基于寄存器与基于固件库的编程方式有什么差异. 二.STM32的USART窗口通讯程序 1.烧录代码的方式 2.代码及效果图 三.C语言程序里全局变量.局部变量.堆.栈等概念 四.stm32的 ...

  2. 基于 MDK5实现STM32串口通信

    文章目录 一.串口协议与RS-232标准 1.串口协议 2.RS-232标准 3.STM32的USART 二.STM32的USART串口通讯 1.新建工程 2.重定向printf函数 3.主要代码 4 ...

  3. Ardunio下的STM32串口通信

    文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...

  4. STM32串口通信详解(嵌入式学习)

    STM32串口通信 1.通信基础知识 1.1 时钟信号区分 同步通信 异步通信 波特率 总线协议(电气协议) 1.2 通信方式划分 串行通信 并行通信 1.3 通信方向划分 单工通信 半双工通信 全双 ...

  5. 【嵌入式】STM32串口通信

    [嵌入式]STM32串口通信 一.串口通信协议 1.串口通信简介 2.串口通信原理 二.RS232通信协议 1.RS232协议简介 2.机械规约 3.电气规约 三.STM32的USART串口通信(查询 ...

  6. Ardunio安装及串口通信

    Ardunio和HAL库函数编程 一.安装Ardunio并完成串口通信程序 1.下载Ardunio 2.将Ardunio的语言设置为中文 3.打开开发板管理器如下 4.安装下图开发板并打开端口 7.安 ...

  7. 【STM32串口通信】

    STM32串口通信 学习计划 一.串口通信知识点 二.硬件部分 1.所需硬件 2.部分硬件连接 三.阻塞式 0.串口阻塞式发送和接收概念 1.STM32CUBEMX配置 2.编写阻塞式串口发送与接收代 ...

  8. openmv和stm32串口通信完成二维码识别

    openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...

  9. 安装STM32CubeMX,stm32串口通信

    目录 一.串口通信和RS-232标准 1.串口通信 波特率 数据位 停止位 奇偶校验 2.RS-232标准 二.安装STM32CubeMX,搭建STM32的开发环境 1.安装jdk 2.安装STM32 ...

最新文章

  1. 一起走进自然语言处理的世界
  2. 在计算机系统中使用防病毒软件的作用,防病毒软件的作用是 江苏省网络与信息安全技能竞赛题库(5)...
  3. 类似wordpress的网站模板
  4. python查找两个数组中相同的元素_匹配两个numpy数组以找到相同的元素
  5. 物流行业解决方案:聚焦物流行业数据痛点,帮助企业搭建数据平台
  6. [Unity] GameFramework 学习记录 4:第三人称控制器
  7. linux鼠标滚轮命令,关于linux:如何使用鼠标滚轮在tmux面板中滚动?
  8. 通过机房工作看软工之软工总结
  9. 李开复说明年有一批AI创企会倒闭,不想死的创业公司需要警惕什么?
  10. mc冒险者传说java_我的世界冒险者传说1.9
  11. 自学python工资-Python薪资待遇到底是多少?老男孩python学习
  12. 计算机网络按网络的传输介质分类可以分为:广域网和无线网两种.,常用的网络传输介质类别和各自特点...
  13. 微信调支付宝支付常见问题
  14. 后台推送消息给app_小米加入统一推送联盟!避免多种APP后台运行,国产手机春天来了...
  15. 新版源支付V5.18三端全套版+去授权/云端监控/免挂
  16. 1002 写出这个数 (20 分)
  17. 为什么用IE浏览器的人越来越少?推荐这一款桌面浏览器
  18. 2022-2028全球与中国实验室烧结炉市场现状及未来发展趋势
  19. 模型训练之决策树、随机森林、提升树
  20. Java+Swing捕鱼达人源码

热门文章

  1. CentOS Linux下的apache服务器配置与管理
  2. 将来会是Python、Java、Golang三足鼎立吗?
  3. github Pages:利用github仓库做免费服务器储存,建立个人网站
  4. 呼叫中心服务器类型,呼叫中心常见的几种服务器.doc
  5. Nginx一次肉鸡攻击记录
  6. 如何构造真正理解语言的机器
  7. chatgpt训练自己的数据python版
  8. LeetCode 42 Trapping Rain Water 收集雨水
  9. ubuntu下的截图软件Spectacle安装(替代KSnapshot)
  10. 2023:Python安装教程(保姆级)