stm8 代码一键生成方便快捷
下载链接
链接:https://pan.baidu.com/s/1sWsX1IEf8HnlWvq1zNJYmA
提取码:004z
复制这段内容后打开百度网盘手机App,操作更方便哦
#include <iostm8s103f3.h>#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long#define MASS_KEY1 0xAE
#define MASS_KEY2 0x56
#define EEP_BASE 0x4000void delay_ms(uchar ms)
{uchar i,j;while(ms--){for(i=4;i!=0;i--)for(j=100;j!=0;j--);}
}void adc_init(void)
{ADC_CR1_ADON = 1; //打开adcADC_CSR_CH = 0; //AIN0脚ADC_CSR_EOCIE = 1; //打开ADC中断ADC_CR1_SPSEL = 2; //4分频时钟
}/*
uint adc_get(void)
{uint dataH, dataL;ulong value = 0;uint voltage = 0; //电压单位为(mV)ADC_CR1_ADON = 1; //使能adcwhile(ADC_CSR_EOC==0);dataH = ADC_DRH; //左对齐数据dataL = ADC_DRL; //读取寄存器数据ADC_CSR_EOC = 0;value = dataH<<2|dataL;voltage = (value*5000)>>10; //计算实际电压return voltage;
}//中位值滤波
uint Sort_detection(uchar channel)
{uchar i,j,k;uint tmp,adc_buf[5];ADC_CSR_CH = channel;asm("nop");asm("nop");asm("nop");for(i=0;i<5;i++){adc_buf[i] = adc_get();delay_ms(1);}for(j=4;j>0;j--){for(k=0;k<j;k++){if(adc_buf[k]>adc_buf[k+1]){tmp = adc_buf[k+1];adc_buf[k+1] = adc_buf[k];adc_buf[k] = tmp;}}}return adc_buf[2];
}
*/void uart1_init(void)
{UART1_CR1=0x00;UART1_CR2=0x00;UART1_CR3=0x00;UART1_BRR2 = 0x01;UART1_BRR1 = 0x01; //115200波特率
}void Exit_Init(void)
{EXTI_CR1_PAIS = 2; //下降沿触发
}void WDT_Init(void)
{IWDG_KR = 0xCC; //启动看门狗IWDG_KR = 0x55; //解除写保护IWDG_PR = 0x06; //256分频,最高1.02秒IWDG_RLR = 125; //500msIWDG_KR = 0xAA; //写保护
}void WDT(void)
{IWDG_KR = 0xAA; //喂狗指令WDT();
}void EEP_Init(void)
{FLASH_CR1 = 0x00;FLASH_CR2 = 0x00;FLASH_NCR2 = 0xff;FLASH_DUKR = MASS_KEY1;FLASH_DUKR = MASS_KEY2;while(!FLASH_IAPSR_DUL); //等待写保护解锁
}void eep_write(uint addr,uchar dat) //不同芯片,EEPROM容量不同
{*((uchar*)(addr + EEP_BASE)) = dat;while(!FLASH_IAPSR_EOP); //等待写完成
}uchar eep_read(uint addr)
{return *((uchar*)(EEP_BASE + addr));
}void timer_Init(void)
{TIM1_PSCRH = 0;TIM1_PSCRL = 1; //(1+1)分频为1MTIM1_ARRH = 0x3;TIM1_ARRL = 0xE8; //每1000us中断一次TIM1_IER = 0x01; //允许更新中断TIM1_CR1 = 0x01; //计数器使能,开始计数//TIM2/3/4/5/6须使用与芯片对应的头文件TIM2_PSCR_PSC = 1; //2^1 分频为1M TIM2_ARRH = 0x3;TIM2_ARRL = 0xE8; //每1000us中断一次TIM2_IER = 0x01; //允许更新中断TIM2_CR1 = 0x01; //计数器使能,开始计数
}void main(void)
{asm("sim"); //关总中断adc_init();uart1_init();Exit_Init();EEP_Init();timer_Init();WDT_Init();asm("rim"); //开总中断while(1){asm("nop");}
}#define TLI_vector 0x02
#define EXTI0_PA_vector 0x05
#define EXTI1_PB_vector 0x06
#define EXTI2_PC_vector 0x07
#define EXTI3_PD_vector 0x08
#define EXTI4_PE_vector 0x09#pragma vector = EXTI0_PA_vector
__interrupt void EXTI0_PA(void)
{//your code here
}#pragma vector = 0x18
__interrupt void ADC_EOC(void)
{//左对齐先读高位,右对齐先读低位//add your codeADC_CSR_EOC = 0;
}#pragma vector = TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{TIM1_SR1_UIF = 0;//add your code here
}#pragma vector = TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF(void)
{TIM2_SR1_UIF = 0;//add your code here
}
以及电阻分压 电阻并联计算
stm8 代码一键生成方便快捷相关推荐
- Easy Code,IntelliJ IDEA中代码一键生成
Easy Code,IntelliJ IDEA中代码一键生成 1. 安装插件 2. 连接数据库 2.1 添加数据库 2.2 添加数据库信息 3. 生成代码 EasyCode是基于IntelliJ ID ...
- JavaWeb前后端代码一键生成
JavaWeb前后端代码一键生成 生成包括controller层/Rest类.service层.实体类dao层(可不用), 实体类. 先说下,用编码配置方式: 1.Javabean生成 public ...
- 澳门美团跨多应用测试代码一键生成案例分享
每家软件互联网公司的产品线基本无一例外包含:安卓 APP/iOS APP + 后台控制,比如美团就有至少4个应用: 1. 买家下单APP 2. 卖家接单APP 3. 单子后台调度Web应用 4. 骑手 ...
- 利用java代码一键生成数据库文档
1 screw(螺丝钉)介绍 1.2 特点 简洁.轻量.设计良好 多数据库支持 多种格式文档 灵活扩展 支持自定义模板 1.2 文档生成支持 html word markdown 1.3 文档截图 1 ...
- idea package自动生成_懒人必备,IntelliJ IDEA中代码一键生成
之前有不少小伙伴问松哥微人事项目(https://github.com/lenve/vhr)使用的 MyBatis 逆向工程在哪里?其实旧版微人事当时没有使用逆向工程,是我自己手动敲出来的,当然手动敲 ...
- JEECG J2EE敏捷开发框架(代码一键生成)
JEECG是一款基于代码生成器的敏捷开发框架. [J2EE Code Generation] JAVA编程有很多重复机械代码,生成器可以帮助解决50%的重复工作,让开发更多关注业务逻辑,从而实现代码生 ...
- Java代码一键生成神器,支持Jpa/Mybatis/plus多种ORM框架,亲测好用
一款支持多种ORM框架的Java代码生成器,基于模板引擎实现,具有非常高的自由度,可随意修改为适合你的代码风格 支持JPA.Mybatis.MybatisPlus等ORM框架 项目地址在文章末尾 界面 ...
- 懒人必备,IntelliJ IDEA中代码一键生成
之前有不少小伙伴问松哥微人事项目(https://github.com/lenve/vhr)使用的 MyBatis 逆向工程在哪里?其实旧版微人事当时没有使用逆向工程,是我自己手动敲出来的,当然手动敲 ...
- 【JEECG-Mybatis版本】springmvc+mybatis+代码生成器(代码一键生成)
Jeecg-mybatis-framework 版本 简要说明 JEECG[J2EE Code Generation]是一款基于代码生成器的J2EE智能开发框架,借助该框架可以节省 ...
最新文章
- yii2 Html::a
- GIT_Error: Agent admitted failure to sign —— Permission denied (publickey).
- 思维模型篇:四大战略分析工具
- Systrace的用法小结
- 东南亚本地商ERP仓储系统怎么样?
- 设置屏幕横屏_android设置横屏和竖屏的两种方法
- solr7在tomcat上的部署
- Android课程思维导图,Android实现思维导图
- php js 报错信息,JavaScript中错误异常的分析(附示例)
- Python 柱状图 横坐标 名字_Python爬虫实例(二)——爬取新馆疫情每日新增人数
- return可以返回多个值_JDK10的新特性:var泛型和多个接口实现
- Android5.0免Root截屏,录屏
- 在MAC上安装mangodb
- phpquery中文手册
- 熟练运用计算机的重要性,计算机*实习目的和意义
- 第九章:深度学习平台及框架
- IPv4子网划分与聚合
- 零售价9000美元!索尼发布首款专业无人机;三星推出最小尺寸高像素图像传感器 | 美通社头条...
- eclipse中集成jad反编译
- LTC流程概述与核心要点--华为LTC流程专家许浩明老师分享心得体会
热门文章
- kmeans简单用法以及一些常用的参数
- PHP基础学习笔记(一)
- python找不到解释器_pythram找不到python的解释器
- Error Prone Installation
- Windows10上使用Caffe的Python接口进行图像分类例程
- nnUNet(代码)-预处理
- 驱动中如何访问CPU中的寄存器?
- 用友备份文件怎么与服务器断开,用友软件帐套的备份方法及帐套恢复方法规整...
- Linux ubuntu 安装ssh服务
- 使用python和flask建个人博客---增加一个新功能:点击主页图片的时候能够跳转到指定的网页