STM32F103C8T6串口通信
STM32串口通信
开启串口
一
在ioc配置里面开启串口1 端口 PA9 为TX PA10 为 RX
二
屏蔽Src/syscalls.c文件 右击文件 属性 c/c++ Build Excude resource from build前面的方框打√
三
创建 Core/Inc/retarget.h Core/Src/retarget.c文件
四
main.c文件
/* USER CODE BEGIN Includes */#include "retarget.h"/* USER CODE END Includes *//* USER CODE BEGIN 2 */RetargetInit(&huart1);/* USER CODE END 2 *///测试程序char buf[100];printf("\r\nYour name: ");scanf("%s", buf);printf("\r\nHello, %s!\r\n", buf);
retarget.h
#ifndef _RETARGET_H__#define _RETARGET_H__#include "stm32f1xx_hal.h"#include <sys/stat.h>#include <stdio.h>void RetargetInit(UART_HandleTypeDef *huart);int _isatty(int fd);int _write(int fd, char *ptr, int len);int _close(int fd);int _lseek(int fd, int ptr, int dir);int _read(int fd, char *ptr, int len);int _fstat(int fd, struct stat *st);#endif //#ifndef _RETARGET_H__
retarget.c
#include <_ansi.h>#include <_syslist.h>#include <errno.h>#include <sys/time.h>#include <sys/times.h>#include <retarget.h>#include <stdint.h>#if !defined(OS_USE_SEMIHOSTING)#define STDIN_FILENO 0#define STDOUT_FILENO 1#define STDERR_FILENO 2UART_HandleTypeDef *gHuart;void RetargetInit(UART_HandleTypeDef *huart){gHuart = huart;/* Disable I/O buffering for STDOUT stream, so that* chars are sent out as soon as they are printed. */setvbuf(stdout, NULL, _IONBF, 0);}int _isatty(int fd){if (fd >= STDIN_FILENO && fd <= STDERR_FILENO)return 1;errno = EBADF;return 0;}int _write(int fd, char *ptr, int len){HAL_StatusTypeDef hstatus;if (fd == STDOUT_FILENO || fd == STDERR_FILENO){hstatus = HAL_UART_Transmit(gHuart, (uint8_t *) ptr, len, HAL_MAX_DELAY);if (hstatus == HAL_OK)return len;elsereturn EIO;}errno = EBADF;return -1;}int _close(int fd){if (fd >= STDIN_FILENO && fd <= STDERR_FILENO)return 0;errno = EBADF;return -1;}int _lseek(int fd, int ptr, int dir){(void) fd;(void) ptr;(void) dir;errno = EBADF;return -1;}int _read(int fd, char *ptr, int len){HAL_StatusTypeDef hstatus;if (fd == STDIN_FILENO){hstatus = HAL_UART_Receive(gHuart, (uint8_t *) ptr, 1, HAL_MAX_DELAY);if (hstatus == HAL_OK)return 1;elsereturn EIO;}errno = EBADF;return -1;}int _fstat(int fd, struct stat *st){if (fd >= STDIN_FILENO && fd <= STDERR_FILENO){st->st_mode = S_IFCHR;return 0;}errno = EBADF;return 0;}#endif //#if !defined(OS_USE_SEMIHOSTING)
STM32F103C8T6串口通信相关推荐
- 【stm32CubeMX】STM32F103c8t6串口通信
[stm32CubeMX]STM32F103c8t6串口通信发送'hello windows' 一.串口通信协议 1.UART协议 2.RS-232 3.RS-485 二.USB转TTL 三.配置Cu ...
- STM32F103C8T6实现串口通信
目录 前言 一. STM32F103C8T6是什么? 二.准备相应工作 1.下载安装相关程序 2.安装HAL库 3.创建项目 三 调试程序 四 电路连接 1 电路连接 2 烧录程序 五 使用汇编完成 ...
- 【嵌入式系统开发15】STM32F103C8T6下通过定时器Timer方式实现时间的精准控制,实现串口通信并让LED等周期性地闪烁
本文目的是主要介绍通过STM32F103C8T6采用定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务.请设置一个5秒的 ...
- stm32f103c8t6与stm32f103zet6 基于SX1276串口通信-----发送端(二)
矩阵按键控制代码 源码链接 使用4*4矩阵,主控芯片为STM32F103C8T6,串口发送配置在下面这篇文章里面 串口发送端配置博文 /******************************** ...
- uart串口通信_听说UART与STM32的HAL库更配哦
摘要:HAL库(Hardware Abstraction Layer)是目前意法半导体公司主推的单片机开发方式,可以大大节省开发时间,实践来看,还是比较好用的.本文通过一个简单的UART收发程序,演示 ...
- STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏
STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏 串口屏 基础指令集 硬件和接线 接线 实验前准备 STM32程序 串口程序 主函数 实验现象 总结 串口屏 串口屏是一个集 ...
- 八、STM32串口通信
目录 一.串口通信 1.1串口通信物理层 1.2USB转串口模块 1.3串口通信的其他应用 1.4串口数据包的基本组成 二.串口的结构体与函数讲解 2.1串口讲解 2.2结构体讲解 2.3串口初始化函 ...
- STM32学习【2】STM32F103C8T6串口2USART2程序
STM32F103C8T6串口1(PA10/RXD1,PA9/TXD1)用来烧写程序,串口2(PA3/RXD2,PA2/TXD2)接串口模块与电脑串口助手通信.IO口PA1接LED+470R电阻+D3 ...
- STM32通过DMA方式实现串口通信
目录 一.DMA工作原理 二.创建工程项目 三.编写代码 1.在main.c写入以下函数 2.main函数中的while循环中写入以下代码 四.编译烧录 1.编译运行 2.烧录结果 五.总结 六.参考 ...
最新文章
- 企业网站建设中seo不能缺
- centos6.8 搭建postfix/dovecot邮件服务器
- HA集群实现原理 切换 JAVA_HA(一)高可用集群原理
- 【全栈React】第13天: 重复元素
- opencv光流例程_OpenCV 4.4 发布!新增YOLOv4 和 EfficientDet 推断支持
- 亲密关系-【认知情绪】-每一次生气的背后有什么
- testng 组_TestNG组
- n个人看了这个故事之后精神分裂了(ZT)
- 今天遇到的一个诡异的core和解决 std::sort
- airtest 多设备同时运行_AirTest多设备批量运行测试用例并自动生成测试报告
- 嵌入式怎么入门,嵌入式应该先学习什么
- Debian10安装wine及用wine安装微信、QQ与TIM
- Cesium开发基础篇 | 02加载地形数据
- ASP.NET 简介
- 美乐:用优雅的方式赚钱 感性的方式做音乐
- 【java基础】双引号内使用双引号必须在里面的双引号前加转义字符\
- 新企业如何为员工办理社保
- 哈哈,原来老酷比我的更新还要慢~~ 嘿嘿
- matlab的摆线的两拱,一种拱轴线为摆线的拱桥的设计方法与流程
- 4.1 Go语言中包(Packages)基础知识
热门文章
- phpmywind 查询结果生成csv文件并下载到本地
- html五子棋游戏制作原理,原生JS+Canvas实现五子棋游戏
- 手把手带你从0开始搭建个人网站,小白可懂的保姆级教程
- 配置Exchange Server 2010多种邮件客户端收发电子邮件
- oracle 帮助文件,oracle chm帮助文件下载
- webpackjsonp 还原_EST:微生物介导下砷还原及其在铁氧化物上吸附/解吸耦合反应动力学模型...
- lol8月21号服务器维护,8月21日英雄联盟更新维护到几点 lol8.21更新维护公告
- windows 快捷键关闭屏幕
- 微信小程序之分享海报生成
- 蚁群算法(实验分析)