你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32l476g_discovery 定义函数 出现问题

[复制链接]
bbbone 提问时间:2018-8-26 18:51 /
如图所示,说这个函数第一次定义,我该怎么修改?

826.png
收藏 评论10 发布时间:2018-8-26 18:51

举报

10个回答
wenyangzeng 回答时间:2018-8-26 20:49:35
楼主截的图看不清,好像少了花括号。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-8-26 23:46:36
菜单栏打开Project->Option for Target‘STM32L476G-Discovery’->User
参考人家是怎么弄的,看看自己有没有漏掉什么代码规则,初始化代码设置有没有漏写
#include "stm32l4xx.h"
#include "stm32l476g_discovery.h"
UART_HandleTypeDef huart2;
GPIO_InitTypeDef GPIO_InitStruct;
void configure_system_clock(void);

int main(void)
{
    HAL_Init(); // HAL Init

    configure_system_clock(); // Configure Clock
    __GPIOD_CLK_ENABLE(); // Enable GPIOD clock
    __USART2_CLK_ENABLE(); // Enable USART2 Clock
    huart2.Instance = USART2;
    huart2.Init.BaudRate = 9600;
    huart2.Init.WordLength = UART_WORDLENGTH_8B;
    huart2.Init.StopBits = UART_STOPBITS_1;
    huart2.Init.Parity = UART_PARITY_NONE;
    huart2.Init.Mode = UART_MODE_TX_RX;
    huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    HAL_UART_Init(&huart2);

后面就不粘贴了,可以参考下


评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

bbbone 回答时间:2018-8-27 08:14:29
有初始化代码,括号也没少
#include "stm32l4xx.h"
#include "stm32l476g_discovery.h"

ADC_HandleTypeDef  hadc1;
DMA_HandleTypeDef  hdma_adc1;

void ADC1_conf(void)
{
  ADC_ChannelConfTypeDef sConfig;
  HAL_ADC_Init(&hadc1);
  /**Configure the global features of the ADC (Clock, Resolution, Data,Alignment and number of conversion) */
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.ScanConvMode = ENABLE;    //upward
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConvEdge = ADC_SOFTWARE_START;    //software trigger
  hadc1.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_RISING;     //rising edge
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;     //< Data right alignment
  hadc1.Init.NbrOfConversion = 2;                /* This parameter must be a number between Min_Data = 1 and Max_Data = 16.
                                                Note: This parameter must be modified when no conversion is on going on regular group (ADC disabled,
                                                or ADC enabled without continuous mode or external trigger that could launch a conversion). */
  hadc1.Init.DMAContinuousRequests = ENABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;


  /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */
  sConfig.Channel = ADC_CHANNEL_5;
  sConfig.Rank = 1;
  sConfig.SamplingTime = ADC_SAMPLETIME_12CYCLES_5;  //  Sampling time 12.5 ADC clock cycles at ADC resolution 12 bits.
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

  /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */
  sConfig.Channel = ADC_CHANNEL_3;
  sConfig.Rank = 2;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}
zhao.zhao 回答时间:2018-8-27 09:08:10
在ADC.H中声明该函数
void ADC1_conf(void);

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

yu0405jie 回答时间:2018-8-27 09:08:27
看看头文件里函数的声明有没有丢分号什么的

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

toofree 回答时间:2018-8-27 09:23:47
本帖最后由 toofree 于 2018-8-27 09:25 编辑

见5楼,

在ADC.H中声明该函数
void ADC1_conf(void);

在.c中定义函数,在.h中声明函数。
在要调用ADC1_conf()函数的.c文件中,把ADC.H包含进来,#include ADC.H


套路就是这么个套路,c语言功底,好好学习一下

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

bbbone 回答时间:2018-8-27 12:11:51
按2、5、7楼所说的做了,然而并没有解决这个BUG
bbbone 回答时间:2018-8-27 12:12:34
#include "stm32l4xx.h"
//#include "stm32l476g_discovery.h"
#include "adc.h"
#include "stm32l4xx_hal_adc.h"
ADC_HandleTypeDef  hadc1;
DMA_HandleTypeDef  hdma_adc1;

ADC_ChannelConfTypeDef sConfig;

void ADC1_conf(void)
{
        HAL_Init(); // HAL Init
  /**Configure the global features of the ADC (Clock, Resolution, Data,Alignment and number of conversion) */
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.ScanConvMode = ENABLE;    //upward
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConvEdge = ADC_SOFTWARE_START;    //software trigger
  hadc1.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_RISING;     //rising edge
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;     //< Data right alignment
  hadc1.Init.NbrOfConversion = 2;                /* This parameter must be a number between Min_Data = 1 and Max_Data = 16.
                                                Note: This parameter must be modified when no conversion is on going on regular group (ADC disabled,
                                                or ADC enabled without continuous mode or external trigger that could launch a conversion). */
  hadc1.Init.DMAContinuousRequests = ENABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;


  /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */
  sConfig.Channel = ADC_CHANNEL_5;
  sConfig.Rank = 1;
  sConfig.SamplingTime = ADC_SAMPLETIME_12CYCLES_5;  //  Sampling time 12.5 ADC clock cycles at ADC resolution 12 bits.
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

  /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */
  sConfig.Channel = ADC_CHANNEL_3;
  sConfig.Rank = 2;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

}
bbbone 回答时间:2018-8-27 12:43:13
上半部分是adc.c
这一部分是adc.h

#define MX_ADC1_Init
/* Definition for USARTx Pins */

#include "stm32l4xx.h"
#include "stm32l476g_discovery.h"

void ADC1_conf(void);
//void HAL_ADC_Init(ADC_HandleTypeDef* hadc);
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc);
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc);

#define USARTx_TX_PIN                    GPIO_PIN_6
#define USARTx_TX_GPIO_PORT              GPIOB
#define USARTx_TX_AF                     GPIO_AF7_USART1
#define USARTx_RX_PIN                    GPIO_PIN_7
#define USARTx_RX_GPIO_PORT              GPIOB
#define USARTx_RX_AF                     GPIO_AF7_USART1
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版