找回密码
 立即注册
查看: 106|回复: 2

学习心得 串口通信

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-01-05 10:30:33
已绑定手机

1

主题

1

回帖

13

积分

新手上路

积分
13
发表于 2026-1-4 18:48:25 | 显示全部楼层 |阅读模式

#include <reg52.h> // 包含51单片机寄存器定义

// 定义串口通信相关寄存器
sbit LED = P1^0; // 假设LED连接到P1.0

// 串口初始化函数
void UART_Init() {
SCON = 0x50; // 模式1,8位异步串行通信,允许接收
TMOD |= 0x20; // 设置定时器1为模式2(8位自动重装)
TH1 = 0xFD; // 波特率9600(12MHz晶振)
TL1 = 0xFD;
TR1 = 1; // 启动定时器1
ES = 1; // 开启串口中断
EA = 1; // 全局中断开启
}

// 串口发送一个字符
void UART_SendChar(char c) {
SBUF = c; // 将字符写入发送缓冲区
while(!TI); // 等待发送完成
TI = 0; // 清除发送标志
}

// 串口发送字符串
void UART_SendString(char *str) {
while(*str) {
UART_SendChar(*str++);
}
}

// 串口接收中断服务程序
void UART_ISR() interrupt 4 {
if (RI) { // 接收中断标志
char received = SBUF; // 读取接收缓冲区
UART_SendChar(received); // 回传接收到的字符
RI = 0; // 清除接收标志
LED = ~LED; // 点亮/熄灭LED表示接收到数据
}
}

// 延时函数(用于测试)
void Delay(unsigned int ms) {
unsigned int i, j;
for(i = 0; i < ms; i++)
for(j = 0; j < 1275; j++);
}

// 主函数
void main() {
UART_Init(); // 初始化串口
UART_SendString("Hello, World!\r\n"); // 发送初始信息

while(1) {
    Delay(100);   // 模拟其他操作
}

}

回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2026-02-10 13:19:40

22

主题

89

回帖

913

积分

版主

积分
913
发表于 2026-1-5 08:39:16 | 显示全部楼层
要 做到 USB不停电下载
要 尝试 AiCube 图形化自动配置生成程序工具
推荐优先看的:  
printf_usb("Hello World !\r\n")
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96N 或以上版本软件 !

深圳国芯人工智能有限公司-工具软件

下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 Ai8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 Ai8051U 实验指导书,
AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接



回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2026-02-07 11:52:53
已绑定手机

14

主题

125

回帖

924

积分

版主

积分
924
发表于 2026-1-5 08:40:02 | 显示全部楼层
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-2-12 18:04 , Processed in 0.100885 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表