亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: stm32驅動MAX7912(io口模擬spi驅動8位數碼管) [打印本頁]

作者: xu2509674896    時間: 2020-5-16 19:00
標題: stm32驅動MAX7912(io口模擬spi驅動8位數碼管)

C文件



#include "max7219.h"

static void MAX7912_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        //CLK
        RCC_APB2PeriphClockCmd(Max7219_CS_GPIO_CLK , ENABLE);
        RCC_APB2PeriphClockCmd(Max7219_CLK_GPIO_CLK , ENABLE);
        RCC_APB2PeriphClockCmd(Max7219_DIN_GPIO_CLK , ENABLE);
        
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;//注意引腳的工作頻率,太高反而無法接收數據
        
        GPIO_InitStruct.GPIO_Pin = Max7219_CS_GPIO_PIN;
        GPIO_Init(Max7219_CS_GPIO_PORT, &GPIO_InitStruct);
        
        GPIO_InitStruct.GPIO_Pin = Max7219_CLK_GPIO_PIN;
        GPIO_Init(Max7219_CLK_GPIO_PORT, &GPIO_InitStruct);
        
        GPIO_InitStruct.GPIO_Pin = Max7219_DIN_GPIO_PIN;
        GPIO_Init(Max7219_DIN_GPIO_PORT, &GPIO_InitStruct);
        
        Max7219_CS(0);
        Max7219_CLK(0);
        Max7219_DIN(0);
}

void Write7219(unsigned char address,unsigned char dat)
{  
    unsigned char i;
    Max7219_CS(0);    //拉低片選線,選中器件
    //發送地址
    for (i=0;i<8;i++)        //移位循環8次            
    {  
       Max7219_CLK(0);       //清零時鐘總線
                         if((address&0x80))
                         {
                                 Max7219_DIN(1);
                         }
                                else
                                {
                                        Max7219_DIN(0);
                                }                                       
       address<<=1;             //左移一位
       Max7219_CLK(1);        //時鐘上升沿,發送地址
    }
    //發送數據
    for (i=0;i<8;i++)              
    {  
       Max7219_CLK(0);
      if((dat&0x80))
                         {
                                 Max7219_DIN(1);
                         }
                                else
                                {
                                        Max7219_DIN(0);
                                }   
       dat<<=1;
       Max7219_CLK(1);         //時鐘上升沿,發送數據
    }
    Max7219_CS(1);    //發送結束,上升沿鎖存數據                     
}
//MAX7219初始化,設置MAX7219內部的控制寄存器
void Max7219Init(void)               
{
    MAX7912_GPIO_Config();
    Write7219(SHUT_DOWN,0x01);         //開啟正常工作模式(0xX1)
    Write7219(DISPLAY_TEST,0x00);      //選擇工作模式(0xX0)
    Write7219(DECODE_MODE,0xff);       //選用全譯碼模式
    Write7219(SCAN_LIMIT,0x07);        //8只LED全用
    Write7219(INTENSITY,0x04);          //設置初始亮度     
}
h文件


#ifndef _MAX7219_H
#define _MAX7219_H

#include "stm32f10x.h"

#define DECODE_MODE  0x09   //譯碼控制寄存器
#define INTENSITY    0x0A   //亮度控制寄存器
#define SCAN_LIMIT   0x0B   //掃描界限寄存器
#define SHUT_DOWN    0x0C   //關斷模式寄存器
#define DISPLAY_TEST 0x0F   //測試控制寄存器

#define Max7219_CS_GPIO_PIN      GPIO_Pin_1//如果要修改引腳,修改宏定義即可
#define Max7219_CS_GPIO_PORT     GPIOA
#define Max7219_CS_GPIO_CLK      RCC_APB2Periph_GPIOA//

#define Max7219_CLK_GPIO_PIN      GPIO_Pin_0
#define Max7219_CLK_GPIO_PORT     GPIOA
#define Max7219_CLK_GPIO_CLK      RCC_APB2Periph_GPIOA//

#define Max7219_DIN_GPIO_PIN      GPIO_Pin_2
#define Max7219_DIN_GPIO_PORT     GPIOA
#define Max7219_DIN_GPIO_CLK      RCC_APB2Periph_GPIOA//

//  \續行符  后面不能有任何東西
#define Max7219_CS(a)   if(a)\
                                                                                                GPIO_SetBits(Max7219_CS_GPIO_PORT, Max7219_CS_GPIO_PIN);\
                                                                         else GPIO_ResetBits(Max7219_CS_GPIO_PORT, Max7219_CS_GPIO_PIN);

#define Max7219_CLK(a)   if(a)\
                                                                                                GPIO_SetBits(Max7219_CLK_GPIO_PORT, Max7219_CLK_GPIO_PIN);\
                                                                         else GPIO_ResetBits(Max7219_CLK_GPIO_PORT, Max7219_CLK_GPIO_PIN);

#define Max7219_DIN(a)   if(a)\
                                                                                                GPIO_SetBits(Max7219_DIN_GPIO_PORT, Max7219_DIN_GPIO_PIN);\
                                                                         else GPIO_ResetBits(Max7219_DIN_GPIO_PORT, Max7219_DIN_GPIO_PIN);

void Write7219(unsigned char address,unsigned char dat);
void Max7219Init(void) ;

#endif

全部資料51hei下載地址:
max7219.7z (176.56 KB, 下載次數: 49)


作者: swai12543184    時間: 2021-11-17 16:44
題主你好,請問是7219還是7912呀?




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1