本文来源电子发烧友社区,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2286219_1_1.html
本文分为两部分:开发环境搭建和跑通例程
1. 开发环境搭建 首先按照文档从官网下下来安装包,装好之后导入例程,准备开始编译。
然后就遇到了第一个坑,我本机的开发环境比较复杂,从嵌入式开发到客户端软件开发,从后台服务到前端web都有,什么nodejs,python,vs2012,idea都有,光jdk和eclipse就装了好几个版本。导致Haawking IDE装好之后,例程导入不管怎么编译都报错,卸了重装也不行,报错如下。后来还是在官方技术人员gengzh的帮助下才发现是本机上装有mingw,和haawking的编译环境冲突了。
2. 跑通例程
选了一个数码管显示递增数字的例程HX_DSC28027_IIC_TM1650来跑。
首先介绍下原理,设置定时器1ms中断,主程序对中断次数循环计数,360次中断即360ms通过iic接口向数码管发送显示指令,显示指令包括(千位,百位,十位,个位),还做了按键中断响应,当按下101按键时,递增千位数值,当按下103按键时,计数清零,数码管显示0000。
原理不复杂,用到了定时器中断,按键中断和iic通信。详细程序如下。
复制代码
烧写可写入flash,也可写入ram。写入ram计算会更快一些,可以把一些无状态的函数放到ram中,有状态函数和存储数据库放到flash中。
debug过程中需要讲拨码开关全部拨到左侧。在ide中进行debug,通过watch面板观察断点时变量值,也可以通过live view观察变量值的连续变化情况。
最后上一个烧写成功,正在运行的图。再次感谢官方技术人员gengzh。
本文分为两部分:开发环境搭建和跑通例程
1. 开发环境搭建 首先按照文档从官网下下来安装包,装好之后导入例程,准备开始编译。
然后就遇到了第一个坑,我本机的开发环境比较复杂,从嵌入式开发到客户端软件开发,从后台服务到前端web都有,什么nodejs,python,vs2012,idea都有,光jdk和eclipse就装了好几个版本。导致Haawking IDE装好之后,例程导入不管怎么编译都报错,卸了重装也不行,报错如下。后来还是在官方技术人员gengzh的帮助下才发现是本机上装有mingw,和haawking的编译环境冲突了。
2. 跑通例程
选了一个数码管显示递增数字的例程HX_DSC28027_IIC_TM1650来跑。
首先介绍下原理,设置定时器1ms中断,主程序对中断次数循环计数,360次中断即360ms通过iic接口向数码管发送显示指令,显示指令包括(千位,百位,十位,个位),还做了按键中断响应,当按下101按键时,递增千位数值,当按下103按键时,计数清零,数码管显示0000。
原理不复杂,用到了定时器中断,按键中断和iic通信。详细程序如下。
- int main(void)
- {
- /*初始化系统控制*/
- InitSysCtrl();
- /*初始化LED*/
- InitLED();
- /* 清除所有中断和初始化PIE向量表*/
- /*禁用CPU中断*/
- DINT;
- /*初始化PIE控制寄存器到默认状态,默认状态是全部PIE中断被禁用和标志位被清除*/
- InitPieCtrl();
- /*禁用CPU中断和清除所有CPU中断标志位*/
- IER = 0x0000;
- IFR = 0x0000;
- /*初始化PIE中断向量表,为PIE向量表中的所有中断向量配置对应向量的入口地址*/
- InitPieVectTable();
- /*定时器0初始化*/
- timer0_init();
- /*初始化IIC总线的Gpio*/
- InitI2C_Gpio();
- /*IIC初始化*/
- I2CA_Init();
- /*软件复位IIC从设备*/
- softResetIIC_BUS();
- //printf("rnTM1650 init...");//标准C的printf输出测试,串口调试助手设置波特率128000bps,ASCII格式显示
- /*BIT6到BIT4为亮度调节,BIT0是1 开启/0关闭*/
- LigntVal = 0x11;
- /*1级亮度,开启显示*/
- TM1650_Send(CMD_SEG, LigntVal);
- /*DIG0-DIG3均显示0*/
- TM1650_Send(DIG0, SEG7Table[0]);
- TM1650_Send(DIG1, SEG7Table[0]);
- TM1650_Send(DIG2, SEG7Table[0]);
- TM1650_Send(DIG3, SEG7Table[0]);
- /*使能全局中断*/
- EINT;
- /*使能调试事件*/
- while(1)
- {
- /*间隔为360ms*/
- if(CpuTimer0.InterruptCount >= 360)
- {
- /*定时器0中断次数清零*/
- CpuTimer0.InterruptCount = 0;
- /*D401翻转*/
- GpioDataRegs.GPATOGGLE.bit.GPIO6 = 1;
- /*Tmp累加,从0-999循环*/
- Tmp++;
- if(Tmp > 999)
- Tmp = 0;
- /*DIG1显示Tmp的百位*/
- TM1650_Send(DIG1, SEG7Table[Tmp / 100]);
- /*DIG2显示Tmp的十位*/
- TM1650_Send(DIG2, SEG7Table[(Tmp / 10) % 10]);
- /*DIG3显示Tmp的个位*/
- TM1650_Send(DIG3, SEG7Table[Tmp % 10]);
- /*TM1650获取扫描按键S101 S102 S103,控制数码管数字显示及亮度调节*/
- TM1650_Read(CMD_KEY, &keyVal);
- /*S101按下时,DIG0显示内容+1*/
- if(keyVal == 0x44)
- {
- keyReg++;
- keyReg &= 0x0f;
- TM1650_Send(DIG0, SEG7Table[keyReg]);
- }
- /*S102按下时,改变数码管显示亮度*/
- if(keyVal == 0x4c)//
- {
- /*高四位为亮度调节,最后1位是开启、关闭显示*/
- LigntVal = (LigntVal + 0x20) & 0x7F;
- /*1级亮度,开启显示*/
- TM1650_Send(CMD_SEG, LigntVal);
- }
- /*按下S103时*/
- if(keyVal == 0x54)
- {
- Tmp = 0;
- keyReg = 0;
- /*DIG0-DIG3清零*/
- TM1650_Send(DIG0, SEG7Table[0]);
- TM1650_Send(DIG1, SEG7Table[0]);
- TM1650_Send(DIG2, SEG7Table[0]);
- TM1650_Send(DIG3, SEG7Table[0]);
- /*D400翻转*/
- GpioDataRegs.GPATOGGLE.bit.GPIO7 = 1;
- }
- }
- }
- }
烧写可写入flash,也可写入ram。写入ram计算会更快一些,可以把一些无状态的函数放到ram中,有状态函数和存储数据库放到flash中。
debug过程中需要讲拨码开关全部拨到左侧。在ide中进行debug,通过watch面板观察断点时变量值,也可以通过live view观察变量值的连续变化情况。
最后上一个烧写成功,正在运行的图。再次感谢官方技术人员gengzh。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
中科昊芯
+关注
关注
5文章
80浏览量
5154 -
开发板试用
+关注
关注
3文章
301浏览量
2092
发布评论请先 登录
相关推荐
【敏矽微ME32G070开发板免费体验】开箱及环境搭建
,出厂设置驱动了WS2812 RGB彩灯,显示很是炫酷。焊接好两旁的排针好后,闪灯效果见顶部视频。
三、环境搭建
使用Keil开发评测该开发板,因此首先得安装该
发表于 12-17 22:13
追加名额丨米尔瑞芯微RK3576开发板有奖试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器的MYD-LR3576开发板免费试用活动加码啦~~米尔追加了2块价值849元的MYD-LR3576
东软载波ES32VF2264开发板评测-keil开发环境搭建
东软载波ES32VF2264开发板-keil开发环境搭建安装Eastsoft.ES32_DFP.1.0.16时遇到如下问题:
该包从东软官方下载:
不知道如何解决?
这是我的Kei
发表于 11-21 16:49
有奖丨米尔 瑞芯微RK3576开发板免费试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD-LR3576
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】开箱+环境搭建 终于会用HAL框架了,环境搭建玩成了!
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】开箱+环境搭建终于会用HAL框架了,环境搭建
发表于 11-01 13:18
【AG32开发板体验连载】AG32开发板初体验-项目概述
AG32开发板初体验-项目概述
说明
非常感谢平台以及合作方提供的这次试用机会,一直想找一款MCU+FPGA的芯片方案终于让我找到了,迫不及待的申请试用有幸被选中。
AG32开发板基本
发表于 10-21 23:55
瑞芯微RK3566鸿蒙开发板Ubuntu虚拟机环境搭建教程,触觉智能Purple Pi OH主板
本文适用于Ubuntu虚拟机环境搭建教程学习,设备为触觉智能开发的瑞芯微RK3566开发板,型号Purple Pi OH。是Laval官方社
【龙芯2K0300蜂鸟板试用】龙芯2K0300蜂鸟开发板开发环境搭建
的需求,为开发者提供了广阔的应用空间。
龙芯2K0300蜂鸟开发板的开发环境通过下面的方法来搭建。
开
发表于 09-05 21:16
瑞芯微RK3566鸿蒙开发板Ubuntu虚拟机环境搭建教程,触觉智能Purple Pi OH主板
本文适用于Ubuntu虚拟机环境搭建教程学习,设备为触觉智能开发的瑞芯微RK3566开发板,型号Purple Pi OH。是华为Laval官
迅为RK3568手册上新 | RK3568开发板NPU例程测试
《iTOP-3568开发板NPU例程测试》
教程目录
第1章 瑞芯微原厂NPU资料介绍
1.1瑞芯微官方github
1.2 rknn-toolkit2介绍
1.3 rknn-too
发表于 07-12 14:44
点击参与米尔NXP i.MX 93开发板有奖试用
米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了3块价值678元的MYD-LMX9X开发板发起试用活动您不仅可以免费体
鸿蒙OpenHarmony【基于Hi3516DV300开发板(时钟应用开发)】
如何快速搭建基于OpenHarmony标准系统(Hi3516DV300开发板)的应用开发环境,并基于一个时钟APP示例逐步展示应用的创建、开发
评论