蓝桥杯单片机设计与开发组第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/7/4 14:59:58 阅读更多 →
校园研究生招生研招网平台Python django flask

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

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

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

最新新闻

大模型量化技术评测与实战指南

大模型量化技术评测与实战指南

1. 大模型量化技术概述在深度学习领域,模型量化已经成为解决大语言模型(LLM)部署难题的关键技术。简单来说,量化就是通过降低模型参数的数值精度来减少存储和计算开销的过程。想象一下,当你需要搬运一堆书籍时,精装版虽然精美但占…

2026/7/4 15:00:21 阅读更多 →
工业级多通道信号采集系统设计与优化实践

工业级多通道信号采集系统设计与优化实践

1. 工业级多通道信号控制系统的核心需求解析在工业自动化、电力监测和精密仪器领域,多通道信号采集与控制系统一直是核心基础设施。这类系统需要同时处理多个传感器信号(如温度、压力、电压等),并对执行机构进行精确控制。传统方案…

2026/7/4 14:58:21 阅读更多 →
如何高效处理Enigma Virtual Box打包文件:evbunpack工具详解

如何高效处理Enigma Virtual Box打包文件:evbunpack工具详解

如何高效处理Enigma Virtual Box打包文件:evbunpack工具详解 【免费下载链接】evbunpack Enigma Virtual Box Unpacker / 解包、脱壳工具 项目地址: https://gitcode.com/gh_mirrors/ev/evbunpack 你正在处理一个Enigma Virtual Box打包的文件,需…

2026/7/4 14:54:17 阅读更多 →
LV30条码扫描器与PIC18F4685微控制器的嵌入式解码方案

LV30条码扫描器与PIC18F4685微控制器的嵌入式解码方案

1. LV30条码扫描器与PIC18F4685微控制器的技术背景 LV30是一款高性能的线性影像式条码扫描引擎,采用先进的CMOS图像传感器技术,能够从各种介质(包括纸张、塑料、金属、玻璃等)表面捕获条码图像。其核心优势在于: 支持…

2026/7/4 14:50:15 阅读更多 →
Kimi赴港IPO:中文AI原生应用的价值重估与商业化验证

Kimi赴港IPO:中文AI原生应用的价值重估与商业化验证

1. 项目概述:这不是一次普通IPO,而是一场AI公司价值重估的临界点“媒体称Kimi正考虑赴港IPO,估值约180亿美元,如何看待Kimi选择在此时冲击上市?”——这句话背后藏着的,远不止一家AI公司的资本动作。作为国…

2026/7/4 14:48:15 阅读更多 →
2026多端AI视频字幕提取指南:免费与付费视频转文字工具实操教程

2026多端AI视频字幕提取指南:免费与付费视频转文字工具实操教程

日常剪辑创作、网课学习、职场会议记录、短视频文案拆解,都需要把视频人声转化为可编辑文字,市面上覆盖电脑、手机、网页在线形态的 AI 视频转文字工具数量繁多,不同工具在多语言支持、文字识别精度、收费模式、使用门槛上差异明显。本文按照…

2026/7/4 14:46:14 阅读更多 →

日新闻

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 阅读更多 →

周新闻

月新闻