初级会员

- 积分
- 71
- 金钱
- 71
- 注册时间
- 2018-1-11
- 在线时间
- 7 小时
|

楼主 |
发表于 2018-5-16 01:03:22
|
显示全部楼层
void GPIO_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRL&=0XFFFF0FFF;
GPIOB->CRL|=0X00003000; //PB3
GPIOB->CRH&=0XFFFF00FF;
GPIOB->CRH|=0X00003300;//PB10 PB11 推挽输出
GPIOB->ODR|=1<<3; //PB3 输出高
GPIOB->ODR|=1<<10; //PB10 输出高
GPIOB->ODR|=1<<11; //PB11 输出高
}
//--------------------------------------------
//功能:向MAX7219写入字节
//入口参数:DATA
//出口参数:无
//说明:
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
Max7219_pinCS=0;
for(i=8;i>=1;i--)
{
Max7219_pinCLK=0;
Max7219_pinDIN=DATA&0x80;
DATA=DATA<<1;
Max7219_pinCLK=1;
}
}
//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(uchar address,uchar dat)
{
// Max7219_pinCS=0;
Write_Max7219_byte(address); //写入地址,即数码管编号
delay_us(10);
Write_Max7219_byte(dat); //写入数据,即数码管显示数字
delay_us(10);
// Max7219_pinCS=1;
}
/*
#define DECODE_MODE 0x09 //译码控制寄存器
#define INTENSITY 0x0A //亮度控制寄存器
#define SCAN_LIMIT 0x0B //扫描界限寄存器
#define SHUT_DOWN 0x0C //关断模式寄存器
#define DISPLAY_TEST 0x0F //测试控制寄存器
*/
void Init_MAX7219(void)
{
//关断模式寄存器 开启普通工作模式
Write_Max7219(0x0C, 0x01); //掉电模式:0;普通模式:1
//测试控制寄存器 选择工作模式
Write_Max7219(0x0F, 0x00); //显示测试:1;测试结束,正常显示:0
//译码控制寄存器 选择全译码模式
Write_Max7219(0x09, 0xFF); //译码方式:BCD译码
//扫描界限寄存器 8只LED全用
Write_Max7219(0x0B, 0x07); //扫描界限;8个数码管显示
//亮度控制寄存器 设置初始亮度
Write_Max7219(0x0A, 0x03); //亮度
} |
|