roboforum.ru

Технический форум по робототехнике.

stm32 IAR чайниковый вопрос про дрыгание ногами

ARM7, ARM9, ARM11 etc.

stm32 IAR чайниковый вопрос про дрыгание ногами

Сообщение Myp » 06 янв 2019, 16:12

Занялся стмками, и столкнулся с одним моментом...
юзаю старую плату дискавери VL, IAR и Cubemx для конфигурации.
хочу значится написать код инициализации дисплея графического, там нужен ногодрыг.

в IAR насколько я понял чтобы подать единичку на ножку надо написать
Код: Выделить всёРазвернуть
HAL_GPIO_WritePin(GPIOC, TFT_RES_Pin, GPIO_PIN_SET);

тоесть надо указать порт GPIOC, конкретную ножку TFT_RES_Pin(название я уже задал в Cubemx) и значение GPIO_PIN_SET.

оно конечно работает... а нельзя как-то по проще? :shock:
например не указывать каждый раз порт GPIOC, яж блин не могу их все помнить, куда какие ноги у меня выведены
ну и писать обычные 0 или 1 вместо GPIO_PIN_SET?
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: stm32 IAR чайниковый вопрос про дрыгание ногами

Сообщение Angel71 » 06 янв 2019, 19:04

чего не студия от ст? в вижуал студии с вижуалгдб ещё удобней. в не самых пришиблиных редакторах меню на куске кода и смотришь определение или реализацию (где как, может и на выбор быть небольшое окно появится или откроет в новой закладке нужный документ). вообще есть документация в виде исходников, ногодрыг в stm32f1xx_hal_gpio.h
Код: Выделить всёРазвернуть
/** 
  * @brief  GPIO Bit SET and Bit RESET enumeration
  */
typedef enum
{
  GPIO_PIN_RESET = 0U,
  GPIO_PIN_SET
} GPIO_PinState;

/** @addtogroup GPIO_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);


запоминать то мелочи, хоть на бумажке записывай. ты как по всему коду потом менять собираешся? замахаться можно и шансы появления бага увеличивает. порт и ногу можно или через дефайн или через ссылку (с/без структурой или классом) или хоть весь вызов коротко задефайнить
Код: Выделить всёРазвернуть
#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_PORT, LCD_NCS_PIN, OFF)
#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_PORT, LCD_NCS_PIN, ON)

#define LCD_NCS_PIN GPIO_PIN_6
#define LCD_PORT GPIOE
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: stm32 IAR чайниковый вопрос про дрыгание ногами

Сообщение Myp » 06 янв 2019, 21:49

вот да, через дефайн пожалуй сделаю

а чего не студия... ну фиг знает
сказали пиши на IAR, я так то с стм раньше дела не имел.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: stm32 IAR чайниковый вопрос про дрыгание ногами

Сообщение Seggio » 29 авг 2021, 13:58

ARM
Код: Выделить всёРазвернуть
 #include "freeRTOS.h";
#define LED (1<<12);
vLED(void){
while(1){
GPIOD->BSRRH=LED;
vTaskDelay(600);GPIOD->BSRRL=LED;
vTaskDelay(20);
main(){
SystemInit();
Init();
xTaskCreate(vLED,LED,100,null,7,null);
vTaskStartSheduler()
}
Аватара пользователя
Seggio
 
Сообщения: 20
Зарегистрирован: 30 июл 2021, 08:58


Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7