【STC8学习笔记】STC8A8K64S4A12串口配置
串口初始化函数使用stc-isp-v6.88J版本自动生成
串口1例程
#include <STC8.h>void UartInit(void) //9600bps@11.0592MHz
{SCON = 0x50; //8位数据,可变波特率AUXR |= 0x40; //定时器时钟1T模式AUXR &= 0xFE; //串口1选择定时器1为波特率发生器TMOD &= 0x0F; //设置定时器模式TL1 = 0xE0; //设置定时初始值TH1 = 0xFE; //设置定时初始值ET1 = 0; //禁止定时器%d中断TR1 = 1; //定时器1开始计时ES = 1;//使能串口中断EA = 1;//使能总中断
}//向串口发送一个字符
void putchar(char ch)
{SBUF = ch;while(!TI);TI = 0;
}//向串口发送一段字符串
void prints(char *s)
{while(*s != '\0')//发送字符串,直到遇到0才结束{SBUF = *s++;while(!TI);TI = 0;}
}void main(void)
{UartInit();prints("HelloWorld!");putchar('\n');while(1);
}void UART1_Isr() interrupt 4
{unsigned char uartData;//单字节串口数据if(RI){/*将接收到的数据向PC机发送回去*/RI = 0;uartData = SBUF;SBUF = uartData;TI = 0;}
}
串口2
#include <STC8.h>bit busy;
char wptr;
char rptr;
char buffer[16];void UartInit(void) //9600bps@11.0592MHz
{S2CON = 0x50; //8位数据,可变波特率AUXR |= 0x04; //定时器时钟1T模式T2L = 0xE0; //设置定时初始值T2H = 0xFE; //设置定时初始值AUXR |= 0x10; //定时器2开始计时IE2 = 0x01; //串口2中断允许EA = 1; //开总中断
}//向串口发送一个字符
void Uart2Send(char dat)
{while (busy);busy = 1;S2BUF = dat;
}//向串口发送一段字符串
void Uart2SendStr(char *p)
{while (*p){Uart2Send(*p++);}
}void main()
{UartInit();Uart2SendStr("HelloWorld!\n");while (1){if (rptr != wptr){Uart2Send(buffer[rptr++]);rptr &= 0x0f;}}
}void Uart2Isr() interrupt 8
{if (S2CON & 0x02){S2CON &= ~0x02;busy = 0;}if (S2CON & 0x01){S2CON &= ~0x01;buffer[wptr++] = S2BUF;wptr &= 0x0f;}
}
【STC8学习笔记】STC8A8K64S4A12串口配置相关推荐
- S32K144学习笔记2 - 串口配置
1.串口引脚配置 双击左侧的pin_mux:PinSettings 右侧选择LPUART,如下图: 2.添加串口组件 双击左侧Components 右侧双击lpuart,添加三个串口组件. 配置串口信 ...
- stm32学习笔记----双串口同时打开时的printf()问题
stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...
- KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记3——串口Stdio实现
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记3--串口Stdio实现 一.介绍 任务目标 二.工程创建 三.软件设计 第一步,BSP构建 1, 添加前面的pll_config文件 2 ...
- 【K210】K210学习笔记五——串口通信
[K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...
- Qt5学习笔记之串口助手四:增加16进制/ASCII切换、周期发送
目录 1. 概述 2. 16进制/ASCII发送 2.1 功能实现 2.2 界面修改 3. 接收框显示发送内容 3.1 以16进制/ASCII显示 3.1.1 界面修改 3.1.2 功能实现 3.2 ...
- TMS320F280049C 学习笔记19 可配置逻辑块 (CLB) 软件配置
文章目录 CLB tool 简介 CLB配置过程概述 软件安装 GNU Compiler Install the Simulation Viewer 使用CLB tool 导入空CLB工程 更新变量路 ...
- openCV2学习笔记---1.环境配置
openCV2学习笔记-1.环境配置 openCV 是开源的计算机视觉代码库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成 ...
- LINUX学习笔记1 网卡配置(网络适配器安装失败问题解决)
LINUX学习笔记1 网卡配置(网络适配器安装失败问题解决) 概述 每一次选修课总会碰到一堆问题,我真的是幸运得很.这次是LINUX服务器管理这门课,最开始安装虚拟机一切正常(用的是VMware安装u ...
- MVC缓存OutPutCache学习笔记 (一) 参数配置
OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...
- Qt5学习笔记之串口助手三:打包成Windows软件
这里写目录标题 添加图标 打包程序 测试打包好的软件 添加图标 图标的获取可以参考我的另一篇文章:Qt5学习笔记之图标下载和转换,这里只记录下Qt中使用图标的方法. 1.切换到release模式下进行 ...
最新文章
- plsql设置字段可为空_2015最新整理PLSQL常用设置
- 使用 GetStartupInfo 检查自己是否被调试
- mysql 启动参数_MySQL启动相关参数 MySQL DBA学习
- 错误 Failed to load module “canberra-gtk-module“ 解决方案
- 公众号服务器配置url证书问题,公众号服务器配置url,验证token一直出错,为什么?...
- 16位调色板和32位调色板_使调色板可访问
- zookeeper开机自启动
- 条件随机场python实现_基于条件随机场的多标签分类
- Spring Security 用户登录实战
- 基于MATLAB的平面刚架有限元分析,基于MATLAB的平面刚架静力分析.pdf
- Visual studio 2010 中文版安装Siverlight 5 beta tools 总结
- Cmdkey 凭证管理器工具
- Unity 用mono打开脚本时修改其显示分格,可VS风格等显示
- ddos攻击服务器的几种方式
- 深入剖析https原理——加密,完整与端点鉴别
- 鬼谷八荒逆天改命词条通过C++代码制作
- 面试笔试整理3:深度学习机器学习面试问题准备(必会)
- 牛刀:中国房价的买点还没有…
- Altium Designer 制造输出 各文件后缀的含义
- 2019届互联网校招薪资盘点!