该程序编写了STM32F103三个串口初始化程序,可快速调用,同时支持接收和发送单个字符和多个字符,并存储数据,方便接收数据后的通信协议校验,支持自定义接收数据最大长度,重写printf函数。
1
基于cubemx天生的初始化代码,并做了串口中断不定长付与,收到甚么就收回去甚么。
代码只是约莫的测试,给巨匠提供个思绪吧。
2023/4/18 17:32:17 7.65MB STM32 串口中断 不定长接收
1
搜罗IAP.c以及IAP.h;
IAP串口初始化函数;
串口中断函数;
IAP轮回main函数(可参考);
IAP跳转使用法度圭表标准段函数;
更新用户法度圭表标准,写入FLASH函数;
STM32L4xx系列,STM32L452RET6调试告成,LL库配置配备枚举;
2019/11/20前期调了STM32L471VETx芯片,发现擦页不能用,最终找到下场是FLASH页码不连号,只用更正擦页函数的页码号就能够告成擦页,就再也不上传了;
2023/3/26 15:02:01 3KB STM32L4xx IAP UART FLASH
1
单片机51读取GPSNMEA0183格式及解析;
uart.h,uart.c串口中断程序;
gps.c,gps.h读取GPSNMEA数据及解析位置,时间,和卫星形态。
主要包括了GGA和RMC数据读取及解析;
时区调整。
采用的是upsd3300单片机(51系列);
2023/3/17 6:25:46 6KB GPS NMEA
1
次要是使用POLLIN中断去读取串口数据,这是我认为和stm32最近似的一种串口中断
2021/4/11 13:21:57 12KB Jetson Serial POLLIN
1
1.C8051F320做的测试USB速度可到240KBps.包含单片机源码,驱动和上位机程序2.MCUc8051f040用自带的IIC控制器读写实时钟芯片PCF8563,完成BCD码到十进制码转换3.PCF8563的驱动程序,通过模拟IIC总线对PCF8563进行访问,有完整的读写报警,定时中断,最后把时间显示在LED上4.USBCDCusingC8051F320340,virtualCOMportthruusbconnection5.本库函数实现了C8051F020SMBUS总线的驱动简洁规范的代码风格以及简单易用的接口不堪为一经典之作6.采用AT89S51单片机,DS18B20数字温度采集器件,单总线驱动等电路设计制作一个点在温度计,能利用1602LCD液晶显示温度7.单片机为AT89S52,利用数字式输出的传感器DS18B20测温度,精度较高8.基于MST-G240128点阵液晶的状态机机制人机界面四级滚屏菜单源代码,带时间片机制模拟操作系统9.基于单片机的温度时钟(ds1302+ds1820+8951)全套原程序+硬件电路(PCB)10.实现LCD文字显示可以在界面上动态显示文字、图片,添加点flash之类的东西,可以与LED灯状态显示之类合在一起11.使用51系列单片机AT89S52控制LCD12864,全菜单化操作控制初始时间输入,并以指针+数字方式或纯数字方式显示当前时间及温度12.收藏有北航所有有关c8051基础实验的例程,包括adcdac比较器,定时,spi,iic,定时,串口,中断等13.数字温度传感器ds18b20+at8051的完整代码,注释详细,代码简洁,只需要改变1820接入51的io口线就能使用14.详细介绍了1602液晶显示器的各种控制方法,从最简单的显示一个字母A出发到显示自定义的图形
2015/10/22 1:21:38 6.08MB 单片机 源码 VC PCB
1
使用stc15w,内涵stc库函数,串口中断接收数据,使用消息队列,通过trigger脚来通知主机读取,亲测试通过。
1
sht30的基于c51单片机驱动程序:#include#include#include"I2C.h"#include"SHT30.h"#defineuintunsignedint#defineucharunsignedcharvoiddisplay();unsignedcharcodetableduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchardataDIS_ROME[6]={0,0,0,0,0,0};//显示缓存区(4)ucharDISP=0;//缓存区指针ucharSCANF=0xDF;//扫描指针sbitLED1=P1^0;sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitVOC_A=P3^5;sbitVOC_B=P3^6;sbitdula=P2^6;//IO口定义sbitwela=P2^7;sbitkey=P3^4;sbitbeep_dr=P2^3;uintpm1=0;uintpm2=0;uintpm10=0;ucharvr=0;uintintrcnt=0;bitF_1HZ;uintvoice_time_cnt;ucharUart_Buf;ucharRec_Addr=0;ucharmode=0;ucharRec_Uart=0;ucharRecive_Buf[30]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};#definekeyP34#defineconst_key_time150unsignedcharucKeySec=0;//被触发的按键编号unsignedintuiKeyTimeCnt1=0;//按键去抖动延时计数器unsignedcharucKeyLock1=0;//按键触发后自锁的变量标志unsignedchardisplaycnt=0;voidkeyscan(){if(key==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位{ucKeyLock1=0;//按键自锁标志清零uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。
}elseif(ucKeyLock1==0)//有按键按下,且是第一次被按下{uiKeyTimeCnt1++;//累加定时中断次数if(uiKeyTimeCnt1>const_key_time1){uiKeyTimeCnt1=0;ucKeyLock1=1;//自锁按键置位,避免不断触发ucKeySec=1;//触发1号键}}}voidkeyservice(){if(ucKeySec){displaycnt=!displaycnt;}ucKeySec=0;}voidUartInit(void)//9600bps@12.000MHz{TMOD=0x01;//设置定时器0为工作方式1TH0=0xf8;//重装初始值(65535-500)=65035=0xfe0bTL0=0x2f;SCON=0x50;TMOD=0X21;IP=0x10;//把串口中断设置为最高优先级,EA=1;ES=1;ET0=1;TR0=1;}voidT0_time(void)interrupt1//定时中断{TF0=0;//清除中断标志TR0=0;//关中断keyscan();keyservice();display();
2022/9/6 21:13:46 4KB sht30
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡