Переключение режима мигания

Переключение режима будет в период м/у миганием. При нажатии и удержании кнопки происходит переключение. После отпускания кнопки продолжается мигание. Длительность нажатия роли не играет и составляет от ~500 мс.

Создадим проект, и заодно добавим из проекта с миганием светодиодов файл с функцией программной задержки:

nis@jane ~/stm32/f4examples/01-gpio $ cp -av 02-led_en_if_but_pres/ 04-change-blink

nis@jane ~/stm32/f4examples/01-gpio $ cp 03-blink-led/delay.c 04-change-blink/

nis@jane ~/stm32/f4examples/01-gpio $ cd 04-change-blink/

Теперь изменим функцию work() в файле work.c чтобы код соответствовал нашему алгоритму.

Соберем проект и загрузим его в МК:

nis@jane ~/stm32/f4examples/01-gpio/04-change-blink $ make write

arm-softfloat-linux-gnueabi-gcc -g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc -mcpu=cortex-m3 -DSTM32F4XX -I. -I../../../../stm32/stlink/example/libs_stm/inc/base -I../../../../stm32/stlink/example/libs_stm/inc/core_support -I../../../../stm32/stlink/example/libs_stm/inc/device_support -Wl,-T,stm32f4xxxg_flash.ld -c -o delay.o delay.c

arm-softfloat-linux-gnueabi-gcc -g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc -mcpu=cortex-m3 -DSTM32F4XX -I. -I../../../../stm32/stlink/example/libs_stm/inc/base -I../../../../stm32/stlink/example/libs_stm/inc/core_support -I../../../../stm32/stlink/example/libs_stm/inc/device_support -Wl,-T,stm32f4xxxg_flash.ld -c -o work.o work.c

arm-softfloat-linux-gnueabi-gcc -g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc -mcpu=cortex-m3 -DSTM32F4XX -I. -I../../../../stm32/stlink/example/libs_stm/inc/base -I../../../../stm32/stlink/example/libs_stm/inc/core_support -I../../../../stm32/stlink/example/libs_stm/inc/device_support -Wl,-T,stm32f4xxxg_flash.ld -o firmware.elf delay.o work.o startup.o -L.

arm-softfloat-linux-gnueabi-objcopy -O binary firmware.elf firmware.bin

qstlink2 -cewV ./firmware.bin

Verbose level: 2

Info: Devices list loaded.

Info: File Path: "./firmware.bin"

Info: Erasing: true

Info: Writing: true

Info: Found an ST Link V2.

Info: Opening device...

Info: Device Open.

Info: ChipID: "413"

Info: Device type: "STM32F4**"

Info: Verify not yet implemented.

Info: Writing from "8000000" to "800008c"

Info: Erasing flash... This might take some time.

Info: Progress: "91%"

Info: Transfer done

Info: Disconnected.

После этого можно изменять режим мигания нажимая на кнопку: