Merge pull request #2304 from yuneizhilin/master

完善stm32_adc_init函数
This commit is contained in:
Bernard Xiong 2019-02-06 16:40:49 +08:00 committed by GitHub
commit 6fea6f7b71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 5 deletions

View File

@ -7,6 +7,7 @@
* Date Author Notes * Date Author Notes
* 2018-12-05 zylx first version * 2018-12-05 zylx first version
* 2018-12-12 greedyhao Porting for stm32f7xx * 2018-12-12 greedyhao Porting for stm32f7xx
* 2019-02-01 yuneizhilin fix the stm32_adc_init function initialization issue
*/ */
#include <board.h> #include <board.h>
@ -206,29 +207,41 @@ static int stm32_adc_init(void)
{ {
int result = RT_EOK; int result = RT_EOK;
/* save adc name */ /* save adc name */
char name_buf[6] = {0}; char name_buf[5] = {'a', 'd', 'c', '0', 0};
int i = 0; int i = 0;
for (i = 0; i < sizeof(adc_config) / sizeof(adc_config[0]); i++) for (i = 0; i < sizeof(adc_config) / sizeof(adc_config[0]); i++)
{ {
/* ADC init */ /* ADC init */
name_buf[3] = '0';
stm32_adc_obj[i].ADC_Handler = adc_config[i]; stm32_adc_obj[i].ADC_Handler = adc_config[i];
if (stm32_adc_obj[i].ADC_Handler.Instance == ADC1)
{
name_buf[3] = '1';
}
if (stm32_adc_obj[i].ADC_Handler.Instance == ADC2)
{
name_buf[3] = '2';
}
if (stm32_adc_obj[i].ADC_Handler.Instance == ADC3)
{
name_buf[3] = '3';
}
if (HAL_ADC_Init(&stm32_adc_obj[i].ADC_Handler) != HAL_OK) if (HAL_ADC_Init(&stm32_adc_obj[i].ADC_Handler) != HAL_OK)
{ {
LOG_E("ADC%d init failed", i + 1); LOG_E("%s init failed", name_buf);
result = -RT_ERROR; result = -RT_ERROR;
} }
else else
{ {
rt_sprintf(name_buf, "adc%d", i + 1);
/* register ADC device */ /* register ADC device */
if (rt_hw_adc_register(&stm32_adc_obj[i].stm32_adc_device, name_buf, &stm_adc_ops, &stm32_adc_obj[i].ADC_Handler) == RT_EOK) if (rt_hw_adc_register(&stm32_adc_obj[i].stm32_adc_device, name_buf, &stm_adc_ops, &stm32_adc_obj[i].ADC_Handler) == RT_EOK)
{ {
LOG_D("ADC%d init success", i + 1); LOG_D("%s init success", name_buf);
} }
else else
{ {
LOG_E("ADC%d register failed", i + 1); LOG_E("%s register failed", name_buf);
result = -RT_ERROR; result = -RT_ERROR;
} }
} }