Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
ad7792,读数为0
发布于 2019-06-13 16:16:49 浏览:1911
订阅该版
* 本帖最后由 morning559 于 2019-6-13 16:26 编辑 * 一开始调通,后来cube重新生成工程不好用了。 wacth live里最后读数一直显示:-0。使用LL库配置的。 以下是我的spi用到的gpio配置,还有主函数,困扰好多天天,希望大神求我! int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_SPI2_Init(); while (1) { ADVal = AD7792_AIN1_SingleSampling(); } } void MX_SPI2_Init(void) { LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB); /**SPI2 GPIO Configuration PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ GPIO_InitStruct.Pin = LL_GPIO_PIN_12; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; LL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = LL_GPIO_PIN_13|LL_GPIO_PIN_15; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; LL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = LL_GPIO_PIN_14; GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING; LL_GPIO_Init(GPIOB, &GPIO_InitStruct); } 以下是ad7792的.c和.h文件 ```#include "AD7792.h" uint8_t AD7792_DataRead[2] ; /****************************************************** **@函数功能:ad7792延时函数 **@函数名:void AD7792_Delay(uint8_t Time) **@输入:uint8_t Time **@输出:无 ******************************************************/ void AD7792_Delay(uint8_t Time) { while(Time) { Time--; } } /************************************************************************** ** 函数名: void AD7792_WriteToReg(unsigned char ByteData) ** 函数功能:往AD7792写入数据 ** 输入: 要写入的字节数据 ** 输出: 无 ***************************************************************************/ void AD7792_WriteToReg(unsigned char ByteData) // write ByteData to the register { unsigned char temp; int i; NSS_UPDATE(0); temp=0x80; for(i=0;i<8;i++) { if((temp & ByteData)==0) { MOSI_UPDATE(0); } else { MOSI_UPDATE(1); } SCK_UPDATE(0); AD7792_Delay(10); SCK_UPDATE(1); AD7792_Delay(10); temp=temp>>1; } NSS_UPDATE(1); } /************************************************************************** ** 函数名: void AD7792_ReadFromReg(unsigned char nByte) ** 函数功能:从AD7792读取数据 ** 输入: 需要读取的n个字节 ** 输出: 无 ***************************************************************************/ void AD7792_ReadFromReg(unsigned char nByte) // nByte is the number of bytes which need to be read { int i,j; unsigned char temp; temp=0; MOSI_UPDATE(1); NSS_UPDATE(0); MISO_UPDATE(1); for(i=0; i
max ? SamplingDataBuffer* : max; } //获取采样数据的最小值 min = SamplingDataBuffer[0]; for (i = 0; i < 10; i++) { min = SamplingDataBuffer*
max? SamplingDataBuffer* : max; } for (i = 0; i < 10; i++) { min = SamplingDataBuffer* > max? SamplingDataBuffer* : min; } for (i = 0; i < 10; i++) { temp += SamplingDataBuffer*; } temp = (temp - max - min)/8; return temp; } ``````#ifndef __AD7792_H #define __AD7792_H #include "main.h" #define NSS_UPDATE(x) ((x != 1)?(LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_12)):(LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_12))) #define SCK_UPDATE(x) ((x != 1)?(LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_13)):(LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_13))) #define MOSI_UPDATE(x) ((x != 1)?(LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_15)):(LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_15))) #define MISO_UPDATE(x) ((x != 1)?(LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_14)):(LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_14))) extern uint8_t AD7792_DataRead[2]; //void SPI_GPIO_Config(void); void AD7792_Delay(uint8_t Time); void AD7792_WriteToReg(unsigned char ByteData); void AD7792_ReadFromReg(unsigned char nByte); void AD7792_Reset(void); void AD7792_Configuration_AIN1(void); void AD7792_Configuration_AIN2(void); void AD7792_SingleSampling(void); float AD7792_AIN1_SingleSampling(void); float AD7792_AIN2_SingleSampling(void); #endif ```
查看更多
6
个回答
默认排序
按发布时间排序
zhangjun
2019-06-13
这家伙很懒,什么也没写!
很有可能是你用的gpio没有初始化
morning559
2019-06-13
这家伙很懒,什么也没写!
>很有可能是你用的gpio没有初始化 --- MX_SPI2_Init();这个函数里初始化了GPIO了
zhangjun
2019-06-13
这家伙很懒,什么也没写!
>MX_SPI2_Init();这个函数里初始化了GPIO了 --- spi的片选呢,也初始化了?
morning559
2019-06-13
这家伙很懒,什么也没写!
>spi的片选呢,也初始化了? --- 都初始化了
morning559
2019-06-14
这家伙很懒,什么也没写!
已解决!SPI配置问题!
celticsgod
2019-06-18
这家伙很懒,什么也没写!
SPI配置能发出来看一下么
撰写答案
登录
注册新账号
关注者
0
被浏览
1.9k
关于作者
morning559
这家伙很懒,什么也没写!
提问
16
回答
31
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
简单两步配置RTT源码阅读环境 vsc+clangd
2
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
3
LVGL使用字库IC芯片显示中文
4
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
5
freemodbus主机在freertos的适配,参考rtthread例程
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部