ðåêëàìà íà ñàéòå
ïîäðîáíîñòè

 
 
> Íàó÷èòå êðàñèâî äåðãàòü íîæêàìè STM32
Atlantis-
ñîîáùåíèå Jul 6 2016, 15:40
Ñîîáùåíèå #1


Ìåñòíûé
***

Ãðóïïà: Ó÷àñòíèê
Ñîîáùåíèé: 491
Ðåãèñòðàöèÿ: 18-05-11
Ïîëüçîâàòåëü ¹: 65 102



Çäðàâñòâóéòå!
Ó ìåíÿ íà ïëàòå ïîëíî ðàçíûõ ñèãíàëîâ óïðàâëåíèÿ îò STM32F429.  ïðîãðàììå íóæíî èìè âñåìè ìàíèïóëèðîâàòü. Èñïîëüçîâàòü ñòàíäàðòíûå ôóíêöèè HAL íåóäîáíî, ïðè íàïèñàíèè ïðîãðàììû ïðèäåòñÿ ÷àñòî îòâëåêàòüñÿ íà ïëàòó, ÷òîáû ïîñìîòðåòü, ãäå íîæêè ðåàëüíî ðàñïîëîæåíû. Äàæå åñëè äåôàéíîì ïðèñâîèòü èìÿ êàêîìó òî âûâîäó, íåïîíÿòíî íà êàêîì îí ïîðòå - íàäî ñìîòðåòü ïëàòó.
Êîä
HAL_GPIO_WritePin(GPIOA,DAC_RESET,GPIO_PIN_SET);

Êîëëåãà îáîðà÷èâàåò òàêèå âåùè â ôóíêöèè
Êîä
void gpioDACRESET(void)
{
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
}

Íî ýòî òîæå íå äåëî. Ïîäñêàæèòå, êàê âû ðåøàåòå òàêèå ïðîáëåìû?
Go to the top of the page
 
+Quote Post
 
Start new topic
Îòâåòîâ
timurey
ñîîáùåíèå Jul 6 2016, 18:44
Ñîîáùåíèå #2





Ãðóïïà: Ó÷àñòíèê
Ñîîáùåíèé: 11
Ðåãèñòðàöèÿ: 10-05-07
Ïîëüçîâàòåëü ¹: 27 628



Îïðåäåëÿþ íîæêè è ïîðòû äåôàéíàìè:
Êîä
#define IPNUT_PIN_0 GPIO_PIN_0
#define IPNUT_PORT_0 GPIOA

#define IPNUT_PIN_1 GPIO_PIN_3
#define IPNUT_PORT_1 GPIOA

#define IPNUT_PIN_2 GPIO_PIN_0
#define IPNUT_PORT_2 GPIOB

#define IPNUT_PIN_3 GPIO_PIN_1
#define IPNUT_PORT_3 GPIOB

#define IPNUT_PIN_4 GPIO_PIN_0
#define IPNUT_PORT_4 GPIOC

, îáúåäèíÿþ èõ â ìàññèâû:
Êîä
const uint16_t inputPin[]={IPNUT_PIN_0, IPNUT_PIN_1, IPNUT_PIN_2, IPNUT_PIN_3,
   IPNUT_PIN_4, IPNUT_PIN_5, IPNUT_PIN_6, IPNUT_PIN_7, IPNUT_PIN_8, IPNUT_PIN_9,
   IPNUT_PIN_10, IPNUT_PIN_11, IPNUT_PIN_12, IPNUT_PIN_13, IPNUT_PIN_14, IPNUT_PIN_15};

const GPIO_TypeDef* inputPort[]={ IPNUT_PORT_0, IPNUT_PORT_1, IPNUT_PORT_2, IPNUT_PORT_3,
   IPNUT_PORT_4, IPNUT_PORT_5, IPNUT_PORT_6, IPNUT_PORT_7, IPNUT_PORT_8, IPNUT_PORT_9,
   IPNUT_PORT_10, IPNUT_PORT_11, IPNUT_PORT_12, IPNUT_PORT_13, IPNUT_PORT_14, IPNUT_PORT_15};


èíèöèàëèçàöèþ äåëàþ ñ ïîìîùüþ HAL:
Êîä
GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Pin = inputPin[gpioNum];
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = gpioContext[gpioNum].pull;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
HAL_GPIO_Init(inputPort[gpioNum], &GPIO_InitStruct);

÷èòàþ è óñòàíàâëèâàþ ÷åðåç bit-banding:
Êîä
#define GPIO_PIN_ISTATE(PORT,PIN)  &(*(__I uint32_t *)(PERIPH_BB_BASE + ((((uint32_t)&((PORT)->IDR)) - PERIPH_BASE) << 5) + ((PIN) << 2)))
#define GPIO_PIN_ISET(PORT,PIN)  (*(__I uint32_t *)(PERIPH_BB_BASE + ((((uint32_t)&((PORT)->ODR)) - PERIPH_BASE) << 5) + ((PIN) << 2)))

#define IPNUT_PIN_STATE(a)   GPIO_PIN_ISTATE(inputPorts[a], inputPin[a])
#define IPNUT_PIN_SET(a)   GPIO_PIN_ISET(inputPorts[a], inputPin[a])

const uint32_t * inputState[]={
   GPIO_PIN_ISTATE(IPNUT_PORT_0, (IPNUT_PIN_0)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_1, (IPNUT_PIN_1)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_2, (IPNUT_PIN_2)>>1),
   GPIO_PIN_ISTATE(IPNUT_PORT_3, (IPNUT_PIN_3)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_4, (IPNUT_PIN_4)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_5, (IPNUT_PIN_5)>>1),
   GPIO_PIN_ISTATE(IPNUT_PORT_6, (IPNUT_PIN_6)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_7, (IPNUT_PIN_7)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_8, (IPNUT_PIN_8)>>1),
   GPIO_PIN_ISTATE(IPNUT_PORT_9, (IPNUT_PIN_9)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_10, (IPNUT_PIN_10)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_11, (IPNUT_PIN_11)>>1),
   GPIO_PIN_ISTATE(IPNUT_PORT_12, (IPNUT_PIN_12)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_13, (IPNUT_PIN_13)>>1), GPIO_PIN_ISTATE(IPNUT_PORT_14, (IPNUT_PIN_14)>>1),
   GPIO_PIN_ISTATE(IPNUT_PORT_15, (IPNUT_PIN_15)>>1)};


Êîä
if (*inputState[i])
               {
                ...
               }



--------------------
timurey.
Go to the top of the page
 
+Quote Post

Ñîîáùåíèé â ýòîé òåìå
- Atlantis-   Íàó÷èòå êðàñèâî äåðãàòü íîæêàìè STM32   Jul 6 2016, 15:40
- - HardEgor   Îïðåäåëèòå ïîíÿòíûå íàçâàíèÿ è èñïîëüçóéòå òîò æå ...   Jul 6 2016, 15:57
- - Ñåðãåé Áîðù   Ñèëüíî äîðàáîòàííûå íàïèëüíèêîì ìàêðîñû èìåíè Àñêî...   Jul 6 2016, 16:01
- - ViKo   Þçàþ ðåãèñòðû ñáðîñà è óñòàíîâêè, ìîæíî äàæå îäíîâ...   Jul 6 2016, 16:49
|- - x893   Öèòàòà(ViKo @ Jul 6 2016, 19:49) Þçàþ ðåã...   Jul 6 2016, 18:12
- - Dog Pawlowa   Öèòàòà(Atlantis- @ Jul 6 2016, 18:40...   Jul 6 2016, 19:12
- - turnon   Âñÿ ïëàòà îïèñàíà â pinout.h è íàïðèìåð, ñâåòîäèîä...   Jul 6 2016, 19:33
|- - Atlantis-   Öèòàòà(turnon @ Jul 6 2016, 22:33) Âñÿ ïë...   Jul 7 2016, 07:35
|- - turnon   Öèòàòà(Atlantis- @ Jul 7 2016, 10:35...   Jul 8 2016, 06:16
- - AlexandrY   Öèòàòà(Atlantis- @ Jul 6 2016, 18:40...   Jul 6 2016, 19:40
|- - jcxz   Öèòàòà(AlexandrY @ Jul 7 2016, 01:40) Íå ...   Jul 7 2016, 08:27
|- - demiurg_spb   Âñåãäà è íà âñåõ àðõèòåêòóðàõ èñïîëüçóþ ðåøåíèå íà...   Jul 7 2016, 10:30
- - x893   Íà ñõåìå èñïîëüçóþ íàçâàíèÿ âèäà SIGNAL_PIN - íàïð...   Jul 6 2016, 20:37
|- - ar__systems   Öèòàòà(x893 @ Jul 6 2016, 16:37) Íà ñõåìå...   Jul 7 2016, 02:12
- - esaulenka   https://github.com/antongus/stm32tpl - ìàêðîñû Àñê...   Jul 7 2016, 06:34
- - Atlantis-   Ïî÷åìó òî íå ïîëó÷àåòñÿ ñäåëàòü ìàêðîñ Êîä#define ...   Jul 7 2016, 14:29
|- - demiurg_spb   Öèòàòà(Atlantis- @ Jul 7 2016, 17:29...   Jul 7 2016, 15:11
- - Atlantis-   Ñîâñåì çàïóòàëñÿ...à êàê ïðàâèëüíî ïåðåäàòü ñîçäàí...   Jul 7 2016, 20:07
|- - jcxz   Öèòàòà(Atlantis- @ Jul 8 2016, 02:07...   Jul 7 2016, 21:50
|- - Atlantis-   Öèòàòà(jcxz @ Jul 8 2016, 00:50) Æåñòü êà...   Jul 8 2016, 09:33
|- - jcxz   Âîò òåïåðü óæå ëó÷øå. Ó ìåíÿ â ïðîåêòàõ ïðèìåðíî ò...   Jul 8 2016, 11:20
|- - demiurg_spb   Öèòàòà(jcxz @ Jul 8 2016, 14:20) òîëüêî ï...   Jul 8 2016, 12:05
|- - jcxz   Öèòàòà(demiurg_spb @ Jul 8 2016, 18:05) È...   Jul 8 2016, 16:44
|- - demiurg_spb   Öèòàòà(jcxz @ Jul 8 2016, 19:44) È ñîâñåì...   Jul 8 2016, 20:00
|- - jcxz   Öèòàòà(demiurg_spb @ Jul 9 2016, 02:00) Ã...   Jul 8 2016, 21:42
||- - demiurg_spb   Öèòàòà(jcxz @ Jul 9 2016, 00:42) ÈÌÕÎ îä...   Jul 8 2016, 22:00
||- - jcxz   Öèòàòà(demiurg_spb @ Jul 9 2016, 04:00) È...   Jul 10 2016, 07:01
|- - AlexandrY   Öèòàòà(demiurg_spb @ Jul 8 2016, 23:00) Í...   Jul 10 2016, 08:31
|- - jcxz   Öèòàòà(AlexandrY @ Jul 10 2016, 14:31) È ...   Jul 10 2016, 09:05
||- - AlexandrY   Öèòàòà(jcxz @ Jul 10 2016, 12:05) Ñëèøêîì...   Jul 10 2016, 09:50
|- - demiurg_spb   Öèòàòà(AlexandrY @ Jul 10 2016, 11:31) È ...   Jul 10 2016, 12:23
- - arhiv6   Âîò ãîòîâàÿ ðåàëèçàöèÿ íà ìàêðîñàõ. Òàì îïèñàíèå +...   Jul 8 2016, 16:54


Reply to this topicStart new topic
1 ÷åë. ÷èòàþò ýòó òåìó (ãîñòåé: 1, ñêðûòûõ ïîëüçîâàòåëåé: 0)
Ïîëüçîâàòåëåé: 0

 


RSS Òåêñòîâàÿ âåðñèÿ Ñåé÷àñ: 21st August 2025 - 01:01
Ðåéòèíã@Mail.ru


Ñòðàíèöà ñãåíåðèðîâàííà çà 0.01412 ñåêóíä ñ 7
ELECTRONIX ©2004-2016