找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2832|回复: 1
打印 上一主题 下一主题
收起左侧

stm32硬件SPI驱动MAX7219数码管有疑问,求高手指导!

[复制链接]
跳转到指定楼层
楼主
ID:223498 发表于 2018-5-10 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. void RCC_Configuration(void);
  2. void GPIO_Configration(void);
  3. void SPI_Configuration(void);
  4. u8 Write_Max7219_byte(u8 data);
  5. void Write_Max7219_data(u8 add,u8 data);
  6. void init_MAX7219(void);


  7. int main(void)
  8. {
  9.         RCC_Configuration();
  10.         GPIO_Configration();
  11.         SPI_Configuration();
  12.         init_MAX7219();
  13.         while(1)
  14.         {
  15.                 Write_Max7219_data(1,1);
  16.                 Write_Max7219_data(2,2);
  17.                 Write_Max7219_data(3,3);
  18.         }
  19. }


  20. void RCC_Configuration(void)
  21. {
  22.         SystemInit();
  23.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
  24.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  25.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);        
  26. }


  27. void GPIO_Configration(void)
  28. {
  29.         GPIO_InitTypeDef GPIO_Initstructure;
  30.         
  31.         //êy¾YDin:PA7 ê±ÖóClk:PA5  
  32.         GPIO_Initstructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  33.         GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
  34.         GPIO_Initstructure.GPIO_Mode=GPIO_Mode_AF_PP;
  35.         GPIO_Init(GPIOA,&GPIO_Initstructure);
  36.         
  37.         //ƬѡCE:PA3  êy¾YÖ¸áîDC£oPA3 ¸′λRST:PA2
  38.         GPIO_Initstructure.GPIO_Pin=GPIO_Pin_3;
  39.         GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
  40.         GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
  41.         GPIO_Init(GPIOA,&GPIO_Initstructure);
  42. }


  43. void SPI_Configuration(void)
  44. {
  45.         SPI_InitTypeDef SPI_InitStructure;
  46.         
  47.         SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
  48.         SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
  49.         SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
  50.         SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
  51.         SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
  52.         SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
  53.         SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_32;
  54.         SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;
  55.         SPI_InitStructure.SPI_CRCPolynomial=7;
  56.         SPI_Init(SPI1,&SPI_InitStructure);
  57.         
  58.         SPI_Cmd(SPI1,ENABLE);
  59. }


  60. u8 Write_Max7219_byte(u8 data)
  61. {
  62.         u8 temp;
  63.         while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
  64.         SPI_I2S_SendData(SPI1,data);
  65.         while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
  66.         temp=SPI_I2S_ReceiveData(SPI1);
  67.         return temp;
  68. }


  69. void Write_Max7219_data(u8 add,u8 data)
  70. {
  71.         GPIO_ResetBits(GPIOA,GPIO_Pin_3);
  72.         Write_Max7219_byte(add);
  73.         Write_Max7219_byte(data);
  74.         GPIO_SetBits(GPIOA,GPIO_Pin_3);
  75. }


  76. void init_MAX7219(void)
  77. {
  78.         Write_Max7219_data(0x09,0xff);
  79.         Write_Max7219_data(0x0A,0x08);
  80.         Write_Max7219_data(0x0B,0x02);
  81.         Write_Max7219_data(0x0c,0x01);
  82.         Write_Max7219_data(0x0f,0x01);
  83. }
  84. 程序如上,数码管全亮!!!

复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:98880 发表于 2018-7-28 15:39 | 只看该作者
Write_Max7219(0x0f, 0x00);     你这段有问题,你输入的是0x01,打开了测试模式,要输入0x00
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表