找回密码
 立即注册
查看: 777|回复: 2

spi通讯失败

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-15 13:22:19

6

主题

8

回帖

144

积分

注册会员

积分
144
发表于 2023-12-27 13:41:50 | 显示全部楼层 |阅读模式
芯片选用是stc32g12k128,我使用SPI驱动74hc165和hc595,74hc165是读取按键键值,595是输出到LED数码管,muc做主机,硬件是没有问题的,用示波器看过波形,但软件配置不知道哪有问题,而且SPSTAT状态寄存器无法写入值(实例也一样),还有就是在全速运行下寄存器的值不能实时变化(包括变量,寄存器,keil的periodic window updata也勾上了),正常来说我按键按下muc就能收到165发送过来的按键信息,现在就是什么都没有,有没有大佬能看看哪有问题
  1. void        GPIO_config(void)
  2. {
  3.         P0_MODE_IO_PU(GPIO_Pin_5);
  4.         P0_MODE_IO_PU(GPIO_Pin_6);
  5.         P0_MODE_IO_PU(GPIO_Pin_2);
  6.         P0_MODE_IO_PU(GPIO_Pin_3);
  7.        
  8.         P5_MODE_IO_PU(GPIO_Pin_3);
  9.        
  10.         P2_MODE_IO_PU(GPIO_Pin_1);
  11.         P2_MODE_IO_PU(GPIO_Pin_2);
  12.         P2_MODE_IO_PU(GPIO_Pin_3);
  13.         P2_MODE_IO_PU(GPIO_Pin_4);
  14.         P2_MODE_IO_PU(GPIO_Pin_5);
  15. //        P2_MODE_IN_HIZ(GPIO_Pin_3);
  16. //        P2_MODE_OUT_PP(GPIO_Pin_2);
  17. //        P2_MODE_OUT_PP(GPIO_Pin_4);
  18. //        P2_MODE_OUT_PP(GPIO_Pin_5);
  19.        
  20.         P3_MODE_IO_PU(GPIO_Pin_3);
  21.         P3_MODE_IO_PU(GPIO_Pin_4);
  22.        
  23.         P1_MODE_IO_PU(GPIO_Pin_1);
  24.         P1_MODE_IO_PU(GPIO_Pin_0);
  25.         P1_MODE_IO_PU(GPIO_Pin_4);
  26. }
  27. void        SPI_config(void)
  28. {
  29.         SPI_InitTypeDef                SPI_InitStructure;
  30.         SPI_InitStructure.SPI_Enable    = ENABLE;                                                //SPI启动    ENABLE, DISABLE
  31.         SPI_InitStructure.SPI_SSIG      = DISABLE;                                                //片选位     ENABLE, DISABLE
  32.         SPI_InitStructure.SPI_FirstBit  = SPI_MSB;                                        //移位方向   SPI_MSB, SPI_LSB
  33.         SPI_InitStructure.SPI_Mode      = SPI_Mode_Master;                //主从选择   SPI_Mode_Master, SPI_Mode_Slave
  34.         SPI_InitStructure.SPI_CPOL      = SPI_CPOL_Low;                        //时钟极性   SPI_CPOL_High,   SPI_CPOL_Low
  35.         SPI_InitStructure.SPI_CPHA      = SPI_CPHA_2Edge;                //时钟相位   SPI_CPHA_1Edge,  SPI_CPHA_2Edge
  36.         SPI_InitStructure.SPI_Speed     = SPI_Speed_4;                        //SPI速度    SPI_Speed_4, SPI_Speed_16, SPI_Speed_64, SPI_Speed_128
  37.         SPI_Init(&SPI_InitStructure);
  38.         NVIC_SPI_Init(DISABLE,Priority_0);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
  39.        
  40.         SPI_SW(SPI_P22_P23_P24_P25);        //SPI_P54_P13_P14_P15,SPI_P22_P23_P24_P25,SPI_P54_P40_P41_P43,SPI_P35_P34_P33_P32
  41.         //SPI_SS_2 = 1;
  42.         SPSTAT = 0xc0;
  43.         SPI_ClearFlag();   //清除 SPIF和WCOL 标志
  44.         //SPR0 = 0;
  45.         //SPR1 = 0;
  46.         HSPllClkConfig(MCLKSEL_HIRC,PLL_96M,123);    //系统时钟选择,PLL时钟选择,时钟分频系数
  47.         HSSPI_Enable();
  48. }
  49. void main(void)
  50. {
  51.         WTST = 0;                //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  52.         EAXSFR();                //扩展SFR(XFR)访问使能
  53.         CKCON = 0;      //提高访问XRAM速度
  54.        
  55.         EA = 1;
  56.         GPIO_config();
  57.         SPI_config();
  58.         //Timer_config();
  59.         //UART_config();
  60.         //RS485_EN = 0;
  61.         //RS485();
  62.         //WDT_CONTR = 0x24;//使能看门狗 溢出时间约为0.5s
  63.         P05 = 1;
  64.        
  65.         m_LoopFlag = 2;
  66.         while (1)
  67.         {
  68.                 //WDT_CONTR = 0x34;//清除看门狗,否则系统复位
  69. <blockquote>RCK = 0;
复制代码


屏幕截图 2023-12-27 133021.png
屏幕截图 2023-12-27 133102.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2023-12-27 14:13:36 | 显示全部楼层
你用个逻辑分析仪抓一下
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-15 13:22:19

6

主题

8

回帖

144

积分

注册会员

积分
144
发表于 2023-12-27 14:19:51 | 显示全部楼层
嵌入*** 发表于 2023-12-27 14:13
你用个逻辑分析仪抓一下

我用示波器看过,波形是正常的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:03 , Processed in 0.106747 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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