您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
STM32
内容介绍 Keil uVision5 安装与环境配置 Keil uVision5 如何快速安装支持库 第1讲 5个串口232 485通信
Keil uVision5 如何快速安装支持库
激萌の小宅 小宅博客网 STM32

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

STM32F103 5个串口232、485通信 - (库版本)


首先呢,打开我们的《1、STM32F103(库版本)5个串口232 485通信》工程,工程源码可以去本系列的内容介绍中去下载。

目录结构如下:


main.c文件是我们的主函数,代码如下:

#include <string.h>
#include <stdlib.h>
#include "stdio.h"
#include "config.h"
#include "delay.h"
#include "usart1.h"
#include "usart2.h"
#include "usart3.h"
#include "usart4.h"
#include "usart5.h"

int main(void)
{    
	u8 buff[200]="";
	int siz = 0;
	delay_init();//延时函数初始化
	usart1_Configuration(115200);
	usart2_Configuration(115200);
	usart3_Configuration(115200);
	usart4_Configuration(115200);
	usart5_Configuration(115200);
	usart1_Send((u8 *)"usart1 recv:",strlen("usart1 recv:"));
	usart2_Send((u8 *)"usart2 recv:",strlen("usart1 recv:"));
	usart3_Send((u8 *)"usart3 recv:",strlen("usart1 recv:"));
	usart4_Send((u8 *)"usart4 recv:",strlen("usart1 recv:"));
	usart5_Send((u8 *)"usart5 recv:",strlen("usart1 recv:"));
	//printf("Begin...\r\n");
	
	while(1)
	{
		siz = 0;
		memset(buff,0,sizeof(buff));
		
		siz = usart1_Receive(buff, sizeof(buff));
		if(siz){
			usart1_Send((u8 *)"usart1 recv:",strlen("usart1 recv:"));
			usart1_Send(buff,siz);
		}
		
		siz = usart2_Receive(buff, sizeof(buff));
		if(siz){
			usart2_Send((u8 *)"usart2 recv:",strlen("usart2 recv:"));
			usart2_Send(buff,siz);
		}
		
		siz = usart3_Receive(buff, sizeof(buff));
		if(siz){
			usart3_Send((u8 *)"usart3 recv:",strlen("usart3 recv:"));
			usart3_Send(buff,siz);
		}
		
		siz = usart4_Receive(buff, sizeof(buff));
		if(siz){
			usart4_Send((u8 *)"usart4 recv:",strlen("usart4 recv:"));
			usart4_Send(buff,siz);
		}
		
		siz = usart5_Receive(buff, sizeof(buff));
		if(siz){
			usart5_Send((u8 *)"usart5 recv:",strlen("usart5 recv:"));
			usart5_Send(buff,siz);
		}
	}
}


从代码中我们可以看到,我们代码的波特率采用的是115200,接收的最大缓存默认设置的是200字节,已usart1为例子,缓存设置位置在usart1.h文件中,代码如下:

#ifndef __USART1_H_
#define __USART1_H_
#include "sys.h"

#define USART1_SYS      1    //设置编译版本,0是库版本,1是寄存器版本
#define USART1_BUFF     200  //接收数据缓存
#define USART1_485_EN   0    //1 开启485功能,0 关闭485功能
#define USART1_MAP_EN   0    //1 开启重定向功能,0关闭重定向功能

void usart1_Configuration(u32 bound);
void usart1_Send(u8 *buf,u32 len); 
u32  usart1_Receive(u8 *buf, u32 buflen);
void usart1_FreeBuff(void);

#endif


从上面代码就可以看到,针对每个串口,我这是都设置了支持485和232通讯的设置项,同时还有个重定向的设置以及寄存器版本和库版本的切换设置,大家可以自行下载工程代码去看看。

Keil uVision5 如何快速安装支持库

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

STM32F103 5个串口232、485通信 - (库版本)


首先呢,打开我们的《1、STM32F103(库版本)5个串口232 485通信》工程,工程源码可以去本系列的内容介绍中去下载。

目录结构如下:


main.c文件是我们的主函数,代码如下:

#include <string.h>
#include <stdlib.h>
#include "stdio.h"
#include "config.h"
#include "delay.h"
#include "usart1.h"
#include "usart2.h"
#include "usart3.h"
#include "usart4.h"
#include "usart5.h"

int main(void)
{    
	u8 buff[200]="";
	int siz = 0;
	delay_init();//延时函数初始化
	usart1_Configuration(115200);
	usart2_Configuration(115200);
	usart3_Configuration(115200);
	usart4_Configuration(115200);
	usart5_Configuration(115200);
	usart1_Send((u8 *)"usart1 recv:",strlen("usart1 recv:"));
	usart2_Send((u8 *)"usart2 recv:",strlen("usart1 recv:"));
	usart3_Send((u8 *)"usart3 recv:",strlen("usart1 recv:"));
	usart4_Send((u8 *)"usart4 recv:",strlen("usart1 recv:"));
	usart5_Send((u8 *)"usart5 recv:",strlen("usart1 recv:"));
	//printf("Begin...\r\n");
	
	while(1)
	{
		siz = 0;
		memset(buff,0,sizeof(buff));
		
		siz = usart1_Receive(buff, sizeof(buff));
		if(siz){
			usart1_Send((u8 *)"usart1 recv:",strlen("usart1 recv:"));
			usart1_Send(buff,siz);
		}
		
		siz = usart2_Receive(buff, sizeof(buff));
		if(siz){
			usart2_Send((u8 *)"usart2 recv:",strlen("usart2 recv:"));
			usart2_Send(buff,siz);
		}
		
		siz = usart3_Receive(buff, sizeof(buff));
		if(siz){
			usart3_Send((u8 *)"usart3 recv:",strlen("usart3 recv:"));
			usart3_Send(buff,siz);
		}
		
		siz = usart4_Receive(buff, sizeof(buff));
		if(siz){
			usart4_Send((u8 *)"usart4 recv:",strlen("usart4 recv:"));
			usart4_Send(buff,siz);
		}
		
		siz = usart5_Receive(buff, sizeof(buff));
		if(siz){
			usart5_Send((u8 *)"usart5 recv:",strlen("usart5 recv:"));
			usart5_Send(buff,siz);
		}
	}
}


从代码中我们可以看到,我们代码的波特率采用的是115200,接收的最大缓存默认设置的是200字节,已usart1为例子,缓存设置位置在usart1.h文件中,代码如下:

#ifndef __USART1_H_
#define __USART1_H_
#include "sys.h"

#define USART1_SYS      1    //设置编译版本,0是库版本,1是寄存器版本
#define USART1_BUFF     200  //接收数据缓存
#define USART1_485_EN   0    //1 开启485功能,0 关闭485功能
#define USART1_MAP_EN   0    //1 开启重定向功能,0关闭重定向功能

void usart1_Configuration(u32 bound);
void usart1_Send(u8 *buf,u32 len); 
u32  usart1_Receive(u8 *buf, u32 buflen);
void usart1_FreeBuff(void);

#endif


从上面代码就可以看到,针对每个串口,我这是都设置了支持485和232通讯的设置项,同时还有个重定向的设置以及寄存器版本和库版本的切换设置,大家可以自行下载工程代码去看看。