蓝桥杯单片机设计与开发组第15届国赛关于串口部分研究
注意点1.注意引用stdio.h头文件然后进行重定向这样可以使用printf直接打印数据不在需要用字节或指针之类的去发送实测非常好用强烈推荐2.关于void panduan()函数一定要放在中断里面进行如果放在while里面会导致丢失字节然后进而产生一系列的错误ps搜索了一下有资料解释是波特率为9600时进入串口中断约为1ms左右这样会使得在while里面判断的时候进入到中断里面然后把jsdate变量的值给顶掉最终导致数据解算失败3.关于xx*10(jsdate-0);为什么减去0,这是因为这里是用文本模式发送的数字不是实际的数字对应ASCll码值具体0-9对应的值可以询问一下ai4.关于void panduan()函数讲解首先检测到(设置flag1进入到x坐标的解算当在flag1时检测到,说明x坐标解算完成然后将flag置为2进行y坐标的解算当在flag2时检测到)说明数据发送完成然后进行printf打印数据这里面其实就是状态机的一种体现只是将switch语句变更为if语句但是本质上区别不大5.最后这是一个可执行的代码直接全部复制放到main.c就可以进行使用(代码若有bug欢迎一起讨论)#include STC15F2K60S2.H #include stdio.h //0-9 unsigned char duanma[10]{ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; //数码管缓存 unsigned char smg_buf[8]{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; //串口接收数据 unsigned char jsdate0; unsigned char flag0; //坐标x--y unsigned int x0,y0; //锁存器 void xuanze(unsigned char n) { P2(P20x1f)|(n5); } //数码管 void smgxs() { static unsigned char i; xuanze(7); P00xff; xuanze(6); P00x01i; xuanze(7); P0smg_buf[i]; xuanze(0); i(i1)%8; } void smgfz() { smg_buf[0]0xc7; smg_buf[1]x99?duanma[x/100%10]:0xff; smg_buf[2]x9?duanma[x/10%10]:0xff; smg_buf[3]duanma[x%10]; smg_buf[4]0xbf; smg_buf[5]y99?duanma[y/100%10]:0xff; smg_buf[6]y9?duanma[y/10%10]:0xff; smg_buf[7]duanma[y%10]; } //定时器 void Timer2Init(void) //1毫秒12.000MHz { AUXR | 0x04; //定时器时钟1T模式 T2L 0x20; //设置定时初始值 T2H 0xD1; //设置定时初始值 AUXR | 0x10; //定时器2开始计时 IE2 | 0x04; EA 1; } void dsq2() interrupt 12 { smgxs(); } // void panduan() { if(jsdate() { x0; y0; flag1; } if(flag1) { if((jsdate0)(jsdate9)) { xx*10(jsdate-0); } else if(jsdate,) { flag2; } } if(flag2) { if((jsdate0)(jsdate9)) { yy*10(jsdate-0); } else if(jsdate)) { printf(Got it\r\n); flag0; } } if(jsdate?) { printf(Idle\r\n); } if(jsdate#) { printf((%d,%d)\r\n,x,y); } } //串口 void UartInit(void) //9600bps12.000MHz { SCON 0x50; //8位数据,可变波特率 AUXR 0xBF; //定时器时钟12T模式 AUXR 0xFE; //串口1选择定时器1为波特率发生器 TMOD 0x0F; //设置定时器模式 TL1 0xE6; //设置定时初始值 TH1 0xFF; //设置定时初始值 ET1 0; //禁止定时器%d中断 TR1 1; //定时器1开始计时 ES 1; } char putchar (char a) { SBUFa; while(TI0); TI0; return (a); } void ck() interrupt 4 { if(RI1) { jsdateSBUF; panduan(); RI0; } } //主函数 void main() { Timer2Init(); UartInit(); while(1) { smgfz(); } }

相关新闻

修改kafka适应多种格式上传

修改kafka适应多种格式上传

核心改造思路抽象通用消息结构体:定义基础消息结构,支持不同业务类型(如上传、Prompt 任务、SQL 任务);多 Topic 支持:允许动态指定 Topic,而非固定使用配置文件的 Topic;通用发送方…

2026/7/3 4:51:36 阅读更多 →
踩坑实录:如何在无 MPU 的 CH32V307 上正确使用 FreeRTOS?

踩坑实录:如何在无 MPU 的 CH32V307 上正确使用 FreeRTOS?

第一步:下载沁恒官方www.wch.cn提供的EVT(ch32v30x的模板)搜索找到资源第二步:打开下载的资料,找到EXAM,打开后复制FreeRTOS文件夹第三步:把该文件粘贴到自己想要的文件夹内第四步:点击FreeRTOS…

2026/5/17 12:55:21 阅读更多 →
校园研究生招生研招网平台Python django flask

校园研究生招生研招网平台Python django flask

目录校园研究生招生研招网平台实现计划(Python Django/Flask)技术选型分析核心功能模块划分数据库设计要点关键技术实现方案部署运维方案开发阶段里程碑注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主…

2026/5/17 12:30:30 阅读更多 →

最新新闻

ONVIF摄像头接入项目实战记录

ONVIF摄像头接入项目实战记录

在多厂商监控设备共存的AI视频分析项目落地过程中,异构视频源的标准化接入往往是耗时最多的环节。本文基于工业级AI视频分析平台的研发与交付实践,系统性地阐述如何通过ONVIF协议实现摄像头的自动化设备发现、能力协商与取流地址获取。本文旨在为负责视频…

2026/7/4 14:10:00 阅读更多 →
构建高质量操作指南数据集与大模型优化实践

构建高质量操作指南数据集与大模型优化实践

1. 项目背景与核心价值 去年我在处理一个企业知识库项目时,发现现有AI助手在"教人做事"类任务上表现糟糕——要么漏掉关键步骤,要么逻辑混乱。这促使我启动了一个大规模研究:从全网抓取98万份操作指南类网页,清洗后得到…

2026/7/4 14:07:59 阅读更多 →
基于改进YOLOv8的电子废物智能分拣系统开发

基于改进YOLOv8的电子废物智能分拣系统开发

## 1. 项目背景与核心价值电子废物(E-waste)已成为全球增长最快的固体废弃物类型。根据国际电信联盟数据,2023年全球电子废物总量突破6000万吨,但正规回收率不足20%。这个现象背后隐藏着两个关键问题: 1. 有害物质&…

2026/7/4 14:05:58 阅读更多 →
一键下载中小学电子课本:告别网络依赖的智能工具

一键下载中小学电子课本:告别网络依赖的智能工具

一键下载中小学电子课本:告别网络依赖的智能工具 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: htt…

2026/7/4 14:05:58 阅读更多 →
2025主流开源AI UI选型指南:OpenWebUI、Ollama WebUI等四大工具实测

2025主流开源AI UI选型指南:OpenWebUI、Ollama WebUI等四大工具实测

1. 项目概述:当AI能力不再被代码门槛锁死“No Code, No Limits”不是一句营销口号,而是我过去18个月在十几个真实业务场景里反复验证的一条技术路径——从为本地社区诊所搭建症状初筛助手,到帮独立设计师快速生成品牌视觉草稿,再到…

2026/7/4 14:05:58 阅读更多 →
Spring Security OAuth2实战:手把手搭建认证服务器与资源服务器(JWT+密码模式)

Spring Security OAuth2实战:手把手搭建认证服务器与资源服务器(JWT+密码模式)

引言 在现代微服务架构中,安全认证与授权是绕不开的话题。OAuth2 作为业界标准的授权协议,能够帮助我们实现第三方应用授权、单点登录以及资源保护。Spring Security 提供了对 OAuth2 的一流支持,使得开发者可以快速构建符合标准的认证与资源…

2026/7/4 14:03:58 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻