嵌入式作业(七):基于Ardunio的STM32串口通信
嵌入式作业(七)
- 0 作业要求
- 1 Ardunio 完成STM32的串口通信
- (1)安装Ardunio IDE
- (2)stm32串口通信
- 2 基于串口通信的标准库与hal库的区别
- (1)hal库
- (2)代码
- 3 关于 stduino IDE
0 作业要求
- 安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序:
(1)持续向串口输出“Hello world!”;
(2)当接收到“stop!”时,停止输出。 - 分析基于标准库函数与基于HAL库函数的stm32编程方式的差异。
- 网上有一个国人版的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串口通信相关推荐
- 嵌入式作业(六):STM32串口通讯
目录 一.基于寄存器与基于固件库的编程方式有什么差异. 二.STM32的USART窗口通讯程序 1.烧录代码的方式 2.代码及效果图 三.C语言程序里全局变量.局部变量.堆.栈等概念 四.stm32的 ...
- 基于 MDK5实现STM32串口通信
文章目录 一.串口协议与RS-232标准 1.串口协议 2.RS-232标准 3.STM32的USART 二.STM32的USART串口通讯 1.新建工程 2.重定向printf函数 3.主要代码 4 ...
- Ardunio下的STM32串口通信
文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...
- STM32串口通信详解(嵌入式学习)
STM32串口通信 1.通信基础知识 1.1 时钟信号区分 同步通信 异步通信 波特率 总线协议(电气协议) 1.2 通信方式划分 串行通信 并行通信 1.3 通信方向划分 单工通信 半双工通信 全双 ...
- 【嵌入式】STM32串口通信
[嵌入式]STM32串口通信 一.串口通信协议 1.串口通信简介 2.串口通信原理 二.RS232通信协议 1.RS232协议简介 2.机械规约 3.电气规约 三.STM32的USART串口通信(查询 ...
- Ardunio安装及串口通信
Ardunio和HAL库函数编程 一.安装Ardunio并完成串口通信程序 1.下载Ardunio 2.将Ardunio的语言设置为中文 3.打开开发板管理器如下 4.安装下图开发板并打开端口 7.安 ...
- 【STM32串口通信】
STM32串口通信 学习计划 一.串口通信知识点 二.硬件部分 1.所需硬件 2.部分硬件连接 三.阻塞式 0.串口阻塞式发送和接收概念 1.STM32CUBEMX配置 2.编写阻塞式串口发送与接收代 ...
- openmv和stm32串口通信完成二维码识别
openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...
- 安装STM32CubeMX,stm32串口通信
目录 一.串口通信和RS-232标准 1.串口通信 波特率 数据位 停止位 奇偶校验 2.RS-232标准 二.安装STM32CubeMX,搭建STM32的开发环境 1.安装jdk 2.安装STM32 ...
最新文章
- 一起走进自然语言处理的世界
- 在计算机系统中使用防病毒软件的作用,防病毒软件的作用是 江苏省网络与信息安全技能竞赛题库(5)...
- 类似wordpress的网站模板
- python查找两个数组中相同的元素_匹配两个numpy数组以找到相同的元素
- 物流行业解决方案:聚焦物流行业数据痛点,帮助企业搭建数据平台
- [Unity] GameFramework 学习记录 4:第三人称控制器
- linux鼠标滚轮命令,关于linux:如何使用鼠标滚轮在tmux面板中滚动?
- 通过机房工作看软工之软工总结
- 李开复说明年有一批AI创企会倒闭,不想死的创业公司需要警惕什么?
- mc冒险者传说java_我的世界冒险者传说1.9
- 自学python工资-Python薪资待遇到底是多少?老男孩python学习
- 计算机网络按网络的传输介质分类可以分为:广域网和无线网两种.,常用的网络传输介质类别和各自特点...
- 微信调支付宝支付常见问题
- 后台推送消息给app_小米加入统一推送联盟!避免多种APP后台运行,国产手机春天来了...
- 新版源支付V5.18三端全套版+去授权/云端监控/免挂
- 1002 写出这个数 (20 分)
- 为什么用IE浏览器的人越来越少?推荐这一款桌面浏览器
- 2022-2028全球与中国实验室烧结炉市场现状及未来发展趋势
- 模型训练之决策树、随机森林、提升树
- Java+Swing捕鱼达人源码