Assembler посоветовал мне купить такой же контроллер как у него и воспользоваться уже готовыми примерами из его тем чтобы на создавать новых и не беспокоить зря форум. Я купил контроллер точ в точ как у него. зашел в его тему и скопировал код. stm32f103c8t
.syntax unified
.cpu cortex-m3
.thumb
RCC_APB2ENR = 0x40021018
RCC_APB2ENR_AFIOEN = (1 << 0)
RCC_APB2ENR_IOPAEN = (1 << 2)
RCC_APB2ENR_IOPCEN = (1 << 4)
GPIOA_CRH = 0x40010804
GPIOA_BSRR = 0x40010810
GPIOC_CRH = 0x40011004
GPIOC_ODR = 0x4001100c
AFIO_EXTICR3 = 0x40010010
EXTI_IMR = 0x40010400
EXTI_FTSR = 0x4001040c
EXTI_PR = 0x40010414
NVIC_ISER0 = 0xe000e100
.text
.word 0x20002000
.word _start + 1
.space 0x94
.word EXTI9_5_isr + 1
.global _start
_start:
ldr r0, =RCC_APB2ENR
ldr r1, [r0]
orr r1, #(RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPCEN)
str r1, [r0]
ldr r0, =GPIOA_CRH
ldr r1, [r0]
and r1, #0xFFFFFF0F
orr r1, #0x00000080
str r1, [r0]
ldr r0, =GPIOA_BSRR
ldr r1, =(1 << 9)
str r1, [r0]
ldr r0, =GPIOC_CRH
ldr r1, [r0]
and r1, #0xFF0FFFFF
orr r1, #0x00100000
str r1, [r0]
ldr r0, =GPIOC_ODR
ldr r1, [r0]
orr r1, #(1 << 13)
str r1, [r0]
ldr r0, =AFIO_EXTICR3
ldr r1, [r0]
and r1, #0xFFfFFF0F
str r1, [r0]
ldr r0, =EXTI_FTSR
ldr r1, [r0]
orr r1, #(1 << 9)
str r1, [r0]
ldr r0, =EXTI_PR
ldr r1, =0xFFFFF
str r1, [r0]
ldr r0, =EXTI_IMR
ldr r1, =(1 << 9)
str r1, [r0]
ldr r0, =NVIC_ISER0
ldr r1, =(1 << 23)
str r1, [r0]
dsb
loop:
wfi
b loop
.global EXTI9_5_isr
EXTI9_5_isr:
ldr r0, =EXTI_PR
ldr r1, =(1 << 9)
str r1, [r0]
ldr r0, =GPIOC_ODR
ldr r1, [r0]
eor r1, #(1 << 13)
str r1, [r0]
bx lr