OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2744|回复: 2

求救原子哥

[复制链接]

15

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
444
金钱
444
注册时间
2017-7-11
在线时间
89 小时
发表于 2017-11-14 17:17:36 | 显示全部楼层 |阅读模式
5金钱
原子哥,hal库里面HAL_SPI_Receive(&SPI1_Handler, &Rxdata, 1, 1000);这个函数一般的芯片是不是都可以读取啊

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-11-14 20:14:00 | 显示全部楼层
肯定的,只要是SPI接口的
回复

使用道具 举报

15

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
444
金钱
444
注册时间
2017-7-11
在线时间
89 小时
 楼主| 发表于 2017-11-15 16:38:17 | 显示全部楼层
zuozhongkai 发表于 2017-11-14 20:14
肯定的,只要是SPI接口的

谢谢了大神。
开始的时候一直采集不到我所用芯片的数据,然后我就没用SPI。
自己根据芯片手册用软件来控制SCK引脚的高低电平输出波形和CS的引脚高低,在MISO这个引脚下采集到了数据,然后把输出的数据与输入的电压值对比发现正确,这就说明我的硬件没有问题。然后当我初始化好SPI,就只在主函数里面运行HAL_SPI_Receive(&SPI1_Handler, &Rxdata, 1, 1000);这个接收函数,发现Rxdata变量中并没有数据。
我用的SPI是一个时钟和一个单向只接收模式,.
SPI的初始化为:
void SPI1_Init(void)
{
    SPI1_Handler.Instance=SPI1;                                            //SPI1
    SPI1_Handler.Init.Mode=SPI_MODE_MASTER;                                //设置SPI工作模
    SPI1_Handler.Init.Direction=SPI_DIRECTION_1LINE;                       //设置SPI单向或者
    SPI1_Handler.Init.DataSize=SPI_DATASIZE_16BIT;                         //设置SPI的数据大
    SPI1_Handler.Init.CLKPolarity=SPI_POLARITY_LOW;                        //串行同步时钟的
    SPI1_Handler.Init.CLKPhase=SPI_PHASE_2EDGE;                            //串行同步时钟的第
    SPI1_Handler.Init.NSS=SPI_NSS_SOFT;                                    //NSS信号由硬件(NSS
    SPI1_Handler.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256;         //定义波
    SPI1_Handler.Init.FirstBit=SPI_FIRSTBIT_MSB;                           //指定数据传输从MSB
    SPI1_Handler.Init.TIMode=SPI_TIMODE_DISABLE;                           //关闭TI模式
    SPI1_Handler.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLE;           //关闭硬
    SPI1_Handler.Init.CRCPolynomial=7;                                     //CRC值计算的多项式
    HAL_SPI_Init(&SPI1_Handler);                                           //初始化
   
    __HAL_SPI_ENABLE(&SPI1_Handler);                                       //使能SPI1               

}   

是不是我初始化哪里有问题呢?麻烦大神帮帮忙啊,搞了好几天了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 05:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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