历史上的今天
返回首页

历史上的今天

今天是:2025年05月07日(星期三)

正在发生

2018年05月07日 | stm32控制共阳数码管以及共阴数码管

2018-05-07 来源:eefocus

共阳数码管


#include "stm32f10x.h"  

u8table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};//共阳数码管0 1 2 3 4 5 6 7 8的编码  

void delayms(u16 time)//延时函数 延时1ms  

{  

         u16i=0;  

         while(time--)  

         {  

                   i=12000;  

                   while(i--);  

   

         }  

}  

void Init()  

{  

         GPIO_InitTypeDefGPIO_InitStructure;  //定义一个管脚初始化的结构体  

         //开启PA口时钟  

         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  

         //配置PAO的模式  

         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;  

         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  

         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  

         GPIO_Init(GPIOA,&GPIO_InitStructure);  

}  

int main(void)  

{  

         Init();  

         while(1)  

         {  

                            inti;  

                            for(i=0;i<9;i++)  

                            {  

                                      GPIO_Write(GPIOA,table[i]);          

                                      delayms(200);  

                            }  

                             

         }  

}  




共阴数码管


#include"stm32f10x.h"  

u8table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};//共阴数码管对应的编码  

voiddelayms(u16 time)  

{  

         u16 i=0;  

         while(time--)  

         {  

                   i=12000;  

                   while(i--);  

   

         }  

}  

voidInitStm32()  

{  

         GPIO_InitTypeDefGPIO_InitStructure;  //定义一个管脚初始化的结构体  

         //开启PA口时钟  

         GPIO_InitTypeDef DuanAndWeiMa;  

         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);  

         //配置PAO的模式  

         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;  

         DuanAndWeiMa.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;             //为什么要用一杠      0是段码,1是位码  

         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  

         DuanAndWeiMa.GPIO_Mode=GPIO_Mode_Out_PP;  

         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  

         DuanAndWeiMa.GPIO_Speed=GPIO_Speed_50MHz;  

         GPIO_Init(GPIOA,&GPIO_InitStructure);  

         GPIO_Init(GPIOB,&DuanAndWeiMa);  

}  

intmain(void)  

{  

         InitStm32();  

         while(1)  

         {  

                   GPIO_SetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_Write(GPIOA,0xfe);                                               //问题是:第8个数码管控制不了,一直显示的是8  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_SetBits(GPIOB,GPIO_Pin_0);  

                   GPIO_Write(GPIOA,table[0]);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_0);  

                   delayms(2);  

   

                   GPIO_SetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_Write(GPIOA,0xfd);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_SetBits(GPIOB,GPIO_Pin_0);  

                   GPIO_Write(GPIOA,table[1]);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_0);  

                   delayms(2);  

   

                   GPIO_SetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_Write(GPIOA,0xfb);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_SetBits(GPIOB,GPIO_Pin_0);  

                   GPIO_Write(GPIOA,table[2]);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_0);  

                   delayms(2);  

   

                   GPIO_SetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_Write(GPIOA,0xf7);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_1);  

                   GPIO_SetBits(GPIOB,GPIO_Pin_0);  

                   GPIO_Write(GPIOA,table[2]);  

                   GPIO_ResetBits(GPIOB,GPIO_Pin_0);  

                   delayms(2);  

         }  

}  


关于ODR和IDR的用法:  


ODR类似于51的P0口:GPIO_A_ODR=0xff;和GPIO_Write(GPIOA,0xff);有一样的效果  


IDR的用法: u8    value; value=GPIOA->IDR;  


 

 


模式如果为输入,GPIO_Speed可以不赋值  


 

 


推荐阅读

史海拾趣

全鹏(CHAMPION)公司的发展小趣事

全鹏公司一直重视研发和创新。为了不断满足市场需求,公司投入大量资源用于新技术和新产品的研发。通过引进高素质、高学历的研发人员,建立先进的研发实验室和测试中心,全鹏公司在产品研发方面取得了显著成果。这些新技术和新产品的推出不仅提升了全鹏公司的市场竞争力,也为客户带来了更好的使用体验。

AVX公司的发展小趣事

随着业务的不断发展,AVX开始在美国本土进行大规模扩张。它在多个州设立了生产基地和销售网络,进一步提升了公司的产能和市场覆盖率。同时,AVX还积极开拓国际市场,与全球各地的客户建立了紧密的合作关系。这种全球化布局使AVX能够更好地满足客户需求,提升公司的竞争力。

无锡友达公司的发展小趣事

面对电子行业的快速发展和智能化趋势,无锡友达积极响应,加快智能化转型和升级。公司不仅在产品设计和生产上引入智能化技术,还通过建立智能化管理系统,提升企业的运营效率和产品质量。此外,无锡友达还积极参与各类行业展会和交流活动,与业界同行共同探讨智能化转型的未来趋势。

Bridgelux公司的发展小趣事

Bridgelux在LED照明技术方面取得了重要突破。公司研发出了一种新型的LED芯片结构,提高了光效和稳定性,降低了成本。这一创新使得Bridgelux的产品在市场上更具竞争力,也为其赢得了众多客户的青睐。同时,公司还注重知识产权保护,积极申请专利,确保自身技术的领先地位。

Avalon Photonics公司的发展小趣事

Avalon Photonics的创立源于一次技术突破。创始人Dr. Smith在光子学领域有着深厚的学术背景,他成功研发出了一种新型的光子探测器,具有极高的灵敏度和稳定性。这一创新技术迅速引起了业界的关注。Dr. Smith看到了商业化的潜力,于是决定成立Avalon Photonics,将这项技术转化为实际产品。初创期的Avalon面临着资金短缺和市场认知度低的挑战,但凭借着技术优势和团队的努力,逐渐在市场上站稳脚跟。

Davies Molding公司的发展小趣事

随着电子行业的快速发展,Davies Molding公司意识到,只有不断创新,才能在市场上保持领先地位。因此,公司积极引进先进的生产技术和设备,不断提升自身的研发能力。通过不断的技术创新,Davies Molding公司成功推出了一系列具有竞争力的新产品,满足了市场对高品质塑料注塑成型产品的需求。

问答坊 | AI 解惑

nrf24l01

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 ergfdgdg  …

查看全部问答>

资深电子工程师的分享:接地技术(转载)

关键字: 电子技术  安全接地  工作接地  防浪涌接地  防静电接地  接地是电路设计中最基础的内容,但又是几乎没人说得清的,几乎每次的培训和交流都会有人问到“老师,有没有一种通用的接地方法可以参考啊?”如果想知 ...…

查看全部问答>

在公司里边,做算法实现、做程序优化以及做DSP系统配置,这几项工作是分开由不同人做的吗

    我现在的课题是设计一个基于DSP的图像处理系统,老师有一个DSP的平台和工业摄像机,但是配置工作需要我自己做,这样我的工作就不光是算法问题了,还包含后期的部分移植代码的优化,我想问,我一个人怎么干得了这么多?公司里边这样一 ...…

查看全部问答>

请推荐一个讲AVR单片机比较好的网站

最近要用AVR单片机,苦于是个初学者,很多东西弄不懂,请各位推荐一个好一点的网站,谢谢!…

查看全部问答>

vxworks下如何实现http客户端的功能呢?

  现在开发一个vxworks往web server发送一条http消息的功能,功能很简单,   发过去一条http消息,然后等待,接收server的响应http消息。   本人刚接触vxworks,只是对vxworks的socket通信有点了解,但是如何进行h ...…

查看全部问答>

上海星巨通信设备公司怎么样?哪位达人给我指点一下

上海星巨通信设备公司怎么样?哪位达人给我指点一下。说说待遇,环境,管理... thanks…

查看全部问答>

a/d对应的通道数?能同步采集6通道吗?

我在手册上看到采用间断模式,把ADC_CR1设置成6,就可以同步采集六路信号,是不是这个意识?还有ADC1和ADC2有没有对应通道啊?是不是0~8是adc1转换的通道,9~17是adc2转换的通道?还是不进行区分?…

查看全部问答>

2812c语言编译时头文件无法打开

我在用2812c语言编译时头文件无法打开,错误如下: \\"pmsm.c\\", line 24: fatal error: could not open source file \\"DSP281x_Device.h\\" 1 fatal error detected in the compilation of \\"pmsm.c\\". 请高手帮忙指点一二。 ...…

查看全部问答>

【MP430共享】基于无线网络的楼宇温控系统的研究

针对传统楼宇温控系统布线难的问题, 设计了以MS P 4 3 0 F 2 1 2 1 、 温度传感器等硬件为基础 , 用无线模块替代电缆传递信息的控制系统. 该系统定时采集的温度在本地显示的同时, 还将通过无线模块传给上位机. 上位机通过传递来的数据作出判断 ...…

查看全部问答>