Вт май 03, 2022 21:47:08
// Настройка пинов A8, A9, B3, B4, B6, B7
void otherPortInit(void)
{
// Для начала сброс конфигурации всех используемых портов в ноль
GPIOA->CRH &= ~(GPIO_CRH_MODE8 | GPIO_CRH_CNF8);
GPIOA->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);
GPIOB->CRL &= ~(GPIO_CRL_MODE3 | GPIO_CRL_CNF3);
GPIOB->CRL &= ~(GPIO_CRL_MODE4 | GPIO_CRL_CNF4);
GPIOB->CRL &= ~(GPIO_CRL_MODE6 | GPIO_CRL_CNF6);
GPIOB->CRL &= ~(GPIO_CRL_MODE7 | GPIO_CRL_CNF7);
uint32_t mode;
uint32_t cnf;
mode=0b11; // Режим выхода, с максимальной частотой 50 МГц
cnf=0b00; // Режим push-pull
GPIOA->CRH |= (mode << GPIO_CRH_MODE8_Pos) | (cnf << GPIO_CRH_CNF8_Pos);
GPIOA->CRH |= (mode << GPIO_CRH_MODE9_Pos) | (cnf << GPIO_CRH_CNF9_Pos);
mode=0b00; // Режим входа
cnf=0b01; // Режим плавающего входа, подтяжки нет
GPIOB->CRL |= (mode << GPIO_CRL_MODE3_Pos) | (cnf << GPIO_CRL_CNF3_Pos);
GPIOB->CRL |= (mode << GPIO_CRL_MODE4_Pos) | (cnf << GPIO_CRL_CNF4_Pos);
GPIOB->CRL |= (mode << GPIO_CRL_MODE6_Pos) | (cnf << GPIO_CRL_CNF6_Pos);
GPIOB->CRL |= (mode << GPIO_CRL_MODE7_Pos) | (cnf << GPIO_CRL_CNF7_Pos);
}
Ср май 04, 2022 05:22:36
Ср май 04, 2022 05:50:33
Ср май 04, 2022 07:34:32
//void msDelay(int ms)
//{
_Z7msDelayi:
SUB SP,SP,#+4
// while (ms-- > 0) {
??msDelay_0:
SUBS R0,R0,#+1
BLT.N ??msDelay_1
// volatile int x=500;
MOV R1,#+500
STR R1,[SP, #+0]
// while (x-- > 0)
??msDelay_2:
LDR R1,[SP, #+0]
SUBS R2,R1,#+1
STR R2,[SP, #+0]
BLT.N ??msDelay_0
// __asm("nop");
nop
B.N ??msDelay_2
// }
//}
??msDelay_1:
ADD SP,SP,#+4
BX LR
//void msDelay(int ms)
//{
// while (ms-- > 0) {
_Z7msDelayi:
??msDelay_0:
SUBS R0,R0,#+1
BLT.N ??msDelay_1
// int x=500;
MOV R1,#+500
// while (x-- > 0)
??msDelay_2:
SUBS R1,R1,#+1
BLT.N ??msDelay_0
// __asm("nop");
nop
B.N ??msDelay_2
// }
//}
??msDelay_1:
BX LR
Чт май 05, 2022 01:04:59
Чт май 05, 2022 16:33:11