Olegus 0 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба uint8_t R1 = 0;//8 bit word uint8_t read_byte(uint32_t addr) { return (volatile uint8_t *)addr; } R1 = read_byte(START_ADDR_USER_PAGE + 0); По отладчику показывает ноль. Хотя там у меня по STM32 ST-Link Utility значение 0xEE. В чем ошибка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба 11 минут назад, Olegus сказал: В чем ошибка? В том, что return *(volatile uint8_t *)addr; а не return (volatile uint8_t *)addr; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Olegus 0 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба 8 минут назад, Arlleex сказал: В том, что return *(volatile uint8_t *)addr; а не return (volatile uint8_t *)addr; Ну мне так выше подсказали или я не правильно понял?!(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба 3 минуты назад, Olegus сказал: Ну мне так выше подсказали или я не правильно понял?!(( - Ты суслика видишь? - Нет. - Я тоже нет. А он есть! Внимательно мое сообщение перечитайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба Ошибка в том, что я был невнимателен. Arlleex и компилятор правы, возвращать надо не сам указатель (конечно же), а значение, на которое он указывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 6 апреля, 2019 Опубликовано 6 апреля, 2019 · Жалоба 4 часа назад, Olegus сказал: Почему у меня ругается(warrning) на Вашу функцию ? return makes integer from pointer without a cast [-Wint-conversion] потому что там должно быть return *(volatile uint8_t *)addr; Ой, не заметил, что началась новая страница Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться