news 2026/5/19 14:32:23

STC8G1K08串口2测试代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STC8G1K08串口2测试代码

主控:STC8G1K08(SOP16)

主频11.0592M

串口波特率:9600

TxDP11
RxDP10

采用定时器2(16位自动重载)做波特率发生器,定时器时钟为1T,8位数据,1停止位,无校验

上电后循环发送。

// STC8G1K08 串口2测试代码 // 功能: 使用P1.0(RXD2), P1.1(TXD2)进行串口通信 // 配置: 11.0592MHz, 9600bps, 8位数据, 1停止位, 无校验 // 测试: 上电后循环发送"UART2 Test OK!\r\n" #include "STC8G.h" #include <string.h> #include <stdio.h> // 系统配置 #define MAIN_Fosc 11059200UL // 主频 11.0592MHz #define UART2_BAUD_RATE 9600UL // 波特率 9600 // 串口2发送完成标志 bit UART2_Busy = 0; // 串口2中断服务函数 void UART2_Isr(void) interrupt 8 { // 发送完成中断 if (S2CON & 0x02) { S2CON &= ~0x02; // 清除发送中断标志 UART2_Busy = 0; // 清除忙标志 } // 接收完成中断 if (S2CON & 0x01) { S2CON &= ~0x01; // 清除接收中断标志 UART2_Busy = 1; // 设置忙标志 S2BUF = S2BUF; // 将接收到的数据发回 } } // 串口2初始化函数 // 功能: 使用P3.6(RXD2), P3.7(TXD2) // 波特率: 9600 @ 11.0592MHz void UART2_Init(void) { // ===== 1. 配置IO口模式 ===== // P1.1 (TXD2) 配置为推挽输出 P1M1 &= ~0x02; // 清零P1.1的M1位 P1M0 |= 0x02; // 设置P1.1为推挽输出 // P1.0 (RXD2) 配置为高阻输入 P1M1 |= 0x01; P1M0 &= ~0x01; // ===== 2. 配置串口和定时器 ===== S2CON = 0x50; T2L = 0xE0; T2H = 0xFE; AUXR |= 0x14; UART2_Busy = 0; IE2 |= 0x01; EA = 1; } // 串口2发送单字节 void UART2_SendByte(unsigned char dat) { while (UART2_Busy); // 等待发送完成 UART2_Busy = 1; // 设置忙标志 S2BUF = dat; // 启动发送 } // 串口2发送字符串 void UART2_SendString(char *str) { while (*str) { UART2_SendByte(*str++); } } // 毫秒延时函数 (简单软件延时,主频11.0592MHz) void Delay_ms(unsigned int ms) { unsigned int i, j; for (i = 0; i < ms; i++) for (j = 0; j < 1100; j++); // 粗略延时1ms } // 主函数 void main(void) { unsigned char test_count = 0; char send_buf[32]; // 初始化串口2 UART2_Init(); // 发送启动信息 UART2_SendString("STC8G1K08 UART2 Test Started!\r\n"); UART2_SendString("P1.0(RXD2), P1.1(TXD2), 9600bps, 11.0592MHz\r\n"); while (1) { // 周期性发送测试数据 Delay_ms(1000); // 延时1秒 // 格式化测试信息 sprintf(send_buf, "Test Count: %d, Time: %d ms\r\n", test_count++, 1000 * test_count); UART2_SendString(send_buf); UART2_SendString("UART2 Test OK!\r\n"); UART2_SendString("--------------------------------\r\n"); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 14:24:09

Midscene.js:基于视觉推理的跨平台自动化测试范式革新

Midscene.js&#xff1a;基于视觉推理的跨平台自动化测试范式革新 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在当今快速迭代的软件开发环境中&#xff0c;自…

作者头像 李华
网站建设 2026/5/19 14:15:58

2026 OpenTiny NEXT 产品调研启动!

各位开发者朋友们&#xff01; OpenTiny NEXT 系列产品&#xff08;NEXT SDK / TinyRobot / GenUI SDK / AI Extension / WebAgent 等&#xff09;已陪伴大家走过一段时间。为了更精准地解决实际开发中的痛点&#xff0c;我们正式启动 2026 年度用户体验调研。 ⏰ 调研时间&…

作者头像 李华
网站建设 2026/5/19 14:10:10

2025届学术党必备的五大AI论文神器推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术写作范畴之内&#xff0c;AI技术正在变成高效助力工具。对那些撰写毕业论文的学生来讲…

作者头像 李华