weixin_70360581 2024-03-22 12:05 采纳率: 33.3%
浏览 3
已结题

数据检测之后并通过数码管显示

将一段字符串数据存入数组,并检测是否有小数点,并将数据在数码管上显示

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-22 14:02
    关注

    【相关推荐】



    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/240578
    • 你也可以参考下这篇文章:【笔记】6位数码管显示定时器定时的时分秒,通过按键控制时间,自定义串口通信协议,根据单片机接收到的指令控制数码管显示
    • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 提交软件库说明与课程最后的提示小节, 巩固相关知识点
    • 除此之外, 这篇博客: 数码管显示实验、按键控制实验中的 数码管显示实验 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      共阳极数码管,8个LED的阳极全部并联到一起引出连接+5V。点亮对应的数码管段给低电平,反之熄灭给高电平。
      在这里插入图片描述
      在这里插入图片描述

      新建数码管SMG文件,用于装相关的驱动文件(smg.c)和头文件(smg.h)。

      smg.c

      #include "smg.h"
      
      
      void SMG_Init()    //初始化数码管
      {
      	GPIO_InitTypeDef GPIO_InitStructure;  //声明结构体变量用于初始化GPIO
      	
      	RCC_APB2PeriphClockCmd(SMG_PORT_RCC,ENABLE);//开启GPIO时钟    SMG_PORT_RCC=RCC_APB2Periph_GPIOC
      
      	
      	/*配置GPIO模式和IO口 */
      	GPIO_InitStructure.GPIO_Pin=SMG_PIN; //选择IO口引脚
      	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
      	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
      	GPIO_Init(SMG_PORT,&GPIO_InitStructure);//初始化GPIO  SMG_PORT =GPIOC 
      }
      
      
      

      smg.h

      #ifndef _smg_H
      #define _smg_H
      
      #include "system.h"
      
      
      
      #define SMG_PORT 			GPIOC   
      #define SMG_PIN 			(GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7)
      #define SMG_PORT_RCC		RCC_APB2Periph_GPIOC
      
      
      void SMG_Init(void);//
      
      
      #endif
      
      

      主函数:

      #include "system.h"  //位带操作宏定义
      #include "SysTick.h"   //定时器宏定义
      #include "led.h"   //LED端口、引脚宏定义
      #include "smg.h"   //数码管驱动文件内宏定义
      
      u8 smgduan[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
                   0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};// 数码管显示0-F时对应的数码管数据
      
      int main()
      {
      	u8 i=0;
      	SysTick_Init(72);//精确延时定时器初始化函数
      	LED_Init();
      	SMG_Init();
      	
      	while(1)
      	{
      		for(i=0;i<16;i++)
      		{
      			GPIO_Write(SMG_PORT,(u16)(~smgduan[i]));
      			delay_ms(1000);	//延迟1000ms
      		}	  
      	}
      }
      
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 3月22日

悬赏问题

  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥100 网页游戏在本地页面修改游戏结果
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead