2021-06-09 STC8单片机串口驱动函数

STC8单片机串口驱动函数

单片机型号为 STC8A8K64S4A12
默认时钟频率为 22.1184MHz
串口设置为 9600-n-8-1
使用的串口为 串口1(RXD–P30 TXD–P31)
实验现象为收发一致

以下为实现现象
在这里插入图片描述

以下为完整程序代码

/**
  *************************************************************************************************************************
  * @file    usart.c
  * @author  底色悲凉
  * @version V1.0
  * @date    2021-06-09
  * @brief   STC8串口
  *************************************************************************************************************************
  * @attention
  *
  * 
  *
  *************************************************************************************************************************
  */

/* Includes -------------------------------------------------------------------------------------------------------------*/
#include "usart.h"

/* define ---------------------------------------------------------------------------------------------------------------*/

void USART1_Init(void)
{
	//串口1配置 
	//9600-n-8-1 RXD--P30  TXD--P31
	SCON = 0x50;  //REN=1允许串行接受状态,串口工作模式2     	   
	TMOD = 0x20;  //定时器工作方式2       8位 自动重装载定时器  实现波特率                
	AUXR = 0X40;	//开启1T模式   
  	TH1 = 0xB8;	  //设置波特率为9600  公式 TH1=256-(22118400/32/9600)=256-72=184  0xB8
	TL1 = 0xB8;
	TR1  = 1;     //开启定时器1                                                      
	ES   = 1;     //开串口中断                  
	EA   = 1;     //开总中断 
}

/**
  * @brief  串口1发送字节
  * @param  dat
  * @retval None
  */
void USART1_SendByte(unsigned char dat)
{
	SBUF = dat; 	//SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
 	while (!TI);	//等特数据传送	(TI发送中断标志)
  	TI = 0;				//清除数据传送标志	
}

/**
  * @brief 串口1中断处理函数 
  * @param  
  * @retval 
  */
void USART_Int(void) interrupt 4 using 1
{ 
	unsigned char tmp;  
	
	if (RI) 
  	{
		tmp = SBUF;
		
		USART1_SendByte(tmp);

		RI = 0;
  }
}

/*****************************************************END OF FILE*********************************************************/	

/**
  *************************************************************************************************************************
  * @file    usart.h
  * @author  底色悲凉
  * @version V1.0
  * @date    2021-06-09
  * @brief   STC8串口
  *************************************************************************************************************************
  * @attention
  * 
  * 
  * 
  *************************************************************************************************************************
  */

#ifndef __USART_H
#define	__USART_H

/* Includes -------------------------------------------------------------------------------------------------------------*/
#include "stc8.h"
#include "stdio.h"

/* define ---------------------------------------------------------------------------------------------------------------*/


/* function -------------------------------------------------------------------------------------------------------------*/
void USART1_Init(void);                   //串口1初始化
void USART1_SendByte(unsigned char dat);  //串口1发送字节

#endif /* __USART_H */

/*****************************************************END OF FILE*********************************************************/	

/**
  *************************************************************************************************************************
  * @file    main.c
  * @author  底色悲凉
  * @version V1.0
  * @date    2021-06-09
  * @brief   串口测试
  *************************************************************************************************************************
  * @attention
  *
  * 
  *
  *************************************************************************************************************************
  */

/* Includes -------------------------------------------------------------------------------------------------------------*/
#include "stc8.h"
#include "usart.h"

/* define ---------------------------------------------------------------------------------------------------------------*/

	
/**
 * @brief  
 * @param  None
 * @retval None
 */
void main(void)
{
	USART1_Init();
	
	while(1);
}
	

附完整工程的百度网盘链接:https://pan.baidu.com/s/1_Q8o70ustiGtqcumRenJiw
提取码:1234

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: CH340串口驱动是一种用于STC单片机串口通信芯片。STC(申威科技有限公司)是一家中国的半导体公司,专注于单片机和微控制器的设计与生产。 CH340芯片是一种USB转串口芯片,可以实现USB与串口之间的数据转换,使得电脑可以通过USB接口与STC单片机进行通信。CH340串口驱动作为接口软件,可以提供与CH340芯片的通信协议,使得电脑可以正确识别和驱动CH340芯片,从而与STC单片机进行通信。 使用CH340串口驱动可以使STC单片机与电脑之间进行数据的传输和通讯,这在很多应用中非常重要。例如,在嵌入式系统开发中,我们可以通过串口连接STC单片机和电脑,通过CH340串口驱动实现数据的收发和调试工作。这对于调试程序、传输数据和监测系统状态非常有帮助。 在使用CH340串口驱动时,我们需要先安装驱动程序,并连接电脑和STC单片机。然后,通过串口编程或串口工具,设置好串口参数(如波特率、数据位、校验位等),就可以开始进行数据的收发和通信操作。 总之,CH340串口驱动是一种与STC单片机配套使用的串口通信芯片,通过USB转串口功能,实现了电脑与STC单片机的通信。它在嵌入式系统开发中起到了重要作用,方便了程序调试和数据传输工作。 ### 回答2: CH340是一款串口转USB芯片,用于将串口设备连接到计算机或其他设备上。STC是单片机公司(如STC15系列),使用CH340驱动可以实现STC单片机通过串口与计算机通讯。 CH340芯片的驱动程序可以从互联网上下载,并且针对不同操作系统会有相应的驱动程序。首先,我们需要确定计算机使用的操作系统,然后去制造商的官方网站或其他可信的网站上下载相应的驱动程序。 下载完毕后,我们需要将CH340芯片插入计算机的USB接口。此时,计算机会自动检测新设备并提示找不到驱动程序。我们需要打开下载的驱动程序安装包,按照提示进行驱动安装。安装完成后,我们可以打开设备管理器,查看设备是否正确安装并正常工作。 如果需要使用CH340驱动与STC单片机通讯,需额外进行一些设置。首先,将STC单片机与计算机通过串口线连接。然后,打开开发工具(如Keil C等),选择STC单片机型号和串口号。在程序中,我们可以使用串口通信的相关函数来实现与STC单片机的通讯操作。 总结起来,通过下载并安装CH340串口驱动程序,我们可以实现STC单片机与计算机通过串口进行通讯。这样的通讯方式在嵌入式系统开发中经常使用,可用于数据传输、程序下载等应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值