完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 liuchenzhouyan 于 2015-8-2 17:55 编辑
#include "sys.h" #include "usart.h" #include "delay.h" #include "exti.h" #define Trig PAout(1) #define Echo PAin(0) u16 duan[]={0x3fff,0x06ff,0x5bff,0x4fff,0x66ff,0x6dff,0x7dff,0x07ff,0x7fff,0x6fff}; u16 wei[]={0xfffe,0xfffd,0xfffb}; void xianshi_init(u16 s) //数码管显示 { s=s/1000; GPIOB->ODR=duan[(s%10)]&wei[0]; delay_ms(5); GPIOB->ODR=duan[((s/10)%10)]&wei[1]; delay_ms(5); GPIOB->ODR=duan[(s/100)]&wei[2]; delay_ms(5); } int main(void) { u16 s; STM32_Clock_Init(9) delay_init(72); xianshi_init(s); RCC->APB2ENR|=1<<3; GPIOB->CRH&=0X00000000 GPIOB->CRH|=0X33333333; GPIOB->CRL&=0X00000000; GPIOB->CRL|=0X33333333; GPIOB->ODR=0X00FF; RCC->APB2ENR|=1<<2; GPIOA->CRL&=0XFFFFFF00; GPIOA->CRL|=0X00000038; GPIOA->ODR=0XFFF0; RCC->APB1ENR|=1<<1; while(1) { Trig=1; delay_us(30); Trig=0; TIM3->CNT=0; while(Echo==0); TIM3->CR1=0x01; while((Echo==1)&&(TIM3->CNT TIM3->CR1=0x00; s=((TIM3->CNT)*272); xianshi_init(s); } } |
|
相关推荐
1个回答
|
|
|
首先,你那部分显示的函数写的就不对,各位是取余10没错,但十位不应该是直接除以十,而是(s%100)/10
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 19:49 , Processed in 0.539771 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
22347