完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在某宝上买了这个四位数码管(3642BS)打算用来做项目,没想到给的例程只有51和arduino的,并没有给出STM32的驱动程序。在阅读了51的程序后大概了解了主要代码思路,花了一点时间把程序移植到了STM32上,写了一个计时的功能。和大家分享下。我手上的单片机是STM32f103C8T6.
我手上的这个四位数码管好像就是单独为时间显示制作的,第一、三、四位都是7段数码管,并非常见的8段数码管。只有第二位是带有时间显示分号的8位数码管。 主程序 //说明: // ---------------------------------------------------------------- // GND 电源地 // VCC 接5V或3.3v电源 // DIO 接PB12 // RCLK 接PB13 // SCLK 接PB14 // ---------------------------------------------------------------- #include "delay.h" #include "sys.h" #include "led4.h" #include "timer.h" #include "stm32f10x_tim.h" int T=0; //记录计时秒数 int main (void); void led4show(int r,int j,int k,int l); void ledout(u16 x); u8 d=40; //分、秒之间分号闪烁0 int main(void) { int m,s,m1,m2,s1,s2; //m :分钟,m1:分钟十位,m2:分钟个位。s:秒,s1:秒的 十位,s2:秒的个位。 delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED4_Init(); TIM4_Int_Init(9999,7199); //10Khz的计数频率,计数到10000为1s. while(1) { m=T/60; s=T%60; m1=m/10; m2=m-m1*10; s1=s/10; s2=s-s1*10; if(d>0) //分号闪烁 d--; else d=40; led4show(m1,m2,s1,s2); //调用数码管显示函数 } } unsigned char LED_0F[] = {// 0 1 2 3 4 5 6 7 8 9 A B C D E F - //数码管字表 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf }; void led4show(int r,int j,int k,int l) //位选程序 { u8 i; //显示第1位 i=LED_0F[l]; ledout(i); ledout(0x01); RCLK=0; RCLK = 1; delay_ms(5); //显示第2位 i=LED_0F[k]; ledout(i); ledout(0x02); RCLK = 0; RCLK = 1; delay_ms(5); //显示第3位 i=LED_0F[j]; if(d>20) //分号闪烁 i=i&0x7F; ledout(i); ledout(0x04); RCLK = 0; RCLK = 1; delay_ms(5); //显示第4位 i=LED_0F[r]; ledout(i); ledout(0x08); RCLK = 0; RCLK = 1; delay_ms(5); } void ledout( u16 x) //片选程序 { u8 i; for(i=8;i>=1;i--) { if (x&0x80) DIO=1; else DIO=0; x<<=1; SCLK = 0; SCLK = 1; } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 14:16 , Processed in 0.567392 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号