Совет: после того, как статья написана, оглавление может быть сгенерировано автоматически, как его сгенерировать, можно посмотреть в справочном документе справа.
Каталог статей
提示:以下是本篇文章正文内容,下面案例可供参考
1. Модульное программирование
При написании кода драйвера имеется только один исходный файл,
первая функция в нем является основной функцией, за которой следует множество функций периферийного драйвера, поэтому весь код раздут и перемешан, что не способствует
нашему обслуживанию или вторичной разработке, так что очень нужно каждому освоить модульное программирование. Так называемое модульное программирование означает, что .c
(исходный файл) соответствует .h (заголовочный файл), и каждое периферийное устройство имеет соответствующие .c и .h, так что для использования определенного периферийного драйвера
вам нужно только достаточно включить соответствующие заголовочные файлы, такое модульное программирование очень способствует развитию и трансплантации.
2. Начните освещение
1. Добавить стандартную библиотеку
Стандартная библиотека — это официальная библиотека stm32, которая определяет множество функций, которые мы можем вызывать.То, что «освещение» должно управлять, — это периферийное устройство GPIO, поэтому нам нужно добавить стандартную библиотеку GPIO
.
2. Файл драйвера led.c
Это файл для инициализации порта ввода-вывода микроконтроллера.Каждое периферийное устройство должно быть инициализировано, прежде чем его можно будет использовать, точно так же, как переменная int a=0 в языке c, это необходимо инициализировать, прежде чем его можно будет использовать.
#include "stm32f10x.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能GPIO的时钟
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;//配置GPIO第13引脚
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//配置GPIO为通用推挽输出
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//配置GPIO速率
GPIO_Init(GPIOC,&GPIO_InitStruct);//GPIO初始化函数
GPIO_SetBits(GPIOC,GPIO_Pin_13);//pc13引脚置位(高电平),初始化灯熄灭
}
Данные, запрошенные сетью URL-адресов, используемых здесь.
3. Заголовочный файл led.h
Заголовочный файл — это файл, используемый для хранения функции драйвера, поместите его в основной файл, вы можете вызвать функцию в led.c.
#ifndef _LED_H
#define _LED_H
void LED_Init(void);
#endif
4. Схема
Узнаем, глядя на принципиальную схему.
USER_LED соответствует контакту PC13.Из схемы управления светодиодом нетрудно увидеть, что когда выход PC13 находится на высоком уровне,
напряжение на обоих концах светодиода находится на высоком уровне.Когда уровень низкий , светодиод
находится в состоянии прямой проводимости, и свет будет гореть.
5. Сжигание
Вы можете использовать usb to ttl для записи. Поскольку моя плата поставляется с этим чипом, его можно напрямую вставить в линию передачи данных для записи.
Подведем итог
После включения фар приступить к работе, последующие драйвера писать будет несложно.
Код освещения—————Нажмите здесь
Ссылка: https://pan.baidu.com/s/1aNNpzuA5XlxiXQFKr_vgqQ
Код извлечения: 1234
Нажмите здесь