完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
自己写的四位数码管驱动
74HC595 使用Hal库 LED.C #include "main.h" #include "gpio.h" #define getbit(x,y) ((x)>>(y)&1) //first bit is y=0 #define SCLK0 HAL_GPIO_WritePin(SCLK_GPIO_Port,SCLK_Pin,GPIO_PIN_RESET) #define SCLK1 HAL_GPIO_WritePin(SCLK_GPIO_Port,SCLK_Pin,GPIO_PIN_SET) #define RCLK0 HAL_GPIO_WritePin(RCLK_GPIO_Port,RCLK_Pin,GPIO_PIN_RESET) #define RCLK1 HAL_GPIO_WritePin(RCLK_GPIO_Port,RCLK_Pin,GPIO_PIN_SET) #define DO0 HAL_GPIO_WritePin(DO_GPIO_Port,DO_Pin,GPIO_PIN_RESET) #define DO1 HAL_GPIO_WritePin(DO_GPIO_Port,DO_Pin,GPIO_PIN_SET) uint16_t code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uint16_t num[]={0x01,0x02,0x04,0x08}; void SendByte(uint16_t a){ for(uint16_t i=8;i>0;i--){ SCLK0; if(getbit(a,i-1)&1) DO0; else DO1; SCLK1; } } void SendNum(uint16_t co,uint16_t nu){ uint16_t C = ~code[co]; uint16_t N = ~num[nu]; SendByte(C); SendByte(N); RCLK0; RCLK1; } uint16_t GetNum(uint16_t A,uint16_t B){ if(A==0) return 0; if(B==1) return A%10; if(B==2) return A/10%10; if(B==3) return A/100%10; else return A/1000%10; } void Display(uint16_t Number){ for(uint16_t i=1;i<=4;i++){ SendNum(GetNum(Number,i),i-1); HAL_Delay(3); } } LED.H #ifndef __LED_H #define __LED_H #include "main.h" void SendByte(uint16_t a); void SendNum(uint16_t co,uint16_t nu); uint16_t GetNum(uint16_t A,uint16_t B); void Display(uint16_t Number); #endif 使用时,要设置引脚别名为SCLK,RCLK,DO。将驱动加入KEIL工程后,直接调用Display()函数就行,传递参数为四位无符号整形。 |
|
|
|
只有小组成员才能发言,加入小组>>
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
529 浏览 2 评论
551 浏览 2 评论
信号发生器产生的正弦频率信号,用定时器进行捕获,当幅值低于3V后为什么MCU就无法捕获到了?
209 浏览 2 评论
876 浏览 2 评论
编码器模式下,中断内访问其他定时器cnt值,会导致进入中断次数丢失的原因?
859 浏览 2 评论
1332浏览 9评论
STM32出现error downloading following files怎么解决?
29浏览 3评论
stm32f103的RST复位后PWM就停止输出了,为什么?
38浏览 3评论
STM32G0空闲中断异常,且DMA接收不到数据是怎么回事?
26浏览 3评论
STM32F103用Timer3TRGO通道触发ADC,ADC在三路输出PWM高电平中间点采样,如何配置?
16浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 16:06 , Processed in 0.818061 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号