定时器外设的基本参数配置完毕后还不能使用,还需要配置GPIO、时钟、中断等参数,比如下面配置TIM1使用PA8做PWM输出。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) { GPIO_InitTypeDef GPIO_InitStruct; /* 使能TIM1时钟 */ __HAL_RCC_TIM1_CLK_EN...
Idle(); /* 这个函数在bsp.c文件。用户可以修改这个函数实现休眠和喂狗 */ /* 判断定时器超时时间 */ (bsp_CheckTimer(0)) { /* 每隔100ms 进来一次 / bsp_LedToggle(2); } /* 按键滤波和检测由systick中断服务程序实现,我们只需要调用bsp_GetKey读取键值即可。 */ ucKeyCode = bsp_GetKey()...
MPU初始化,需要用到库文件stm32h7xx_hal_cortex.c和stm32h7xx_hal_cortex.h。 Cache初始化,需要用到core_cm7.h文件。 HAL库初始化函数HAL_Init,需要用到文件stm32h7xx_hal.c。 系统时钟初始化,需要用到库文件stm32h7xx_hal_rcc.c。 前面的两步完成后,就可以开始做用户需要的按键、串口等方面的初始化...
MPU初始化,需要用到库文件stm32h7xx_hal_cortex.c和stm32h7xx_hal_cortex.h。 Cache初始化,需要用到core_cm7.h文件。 HAL库初始化函数HAL_Init,需要用到文件stm32h7xx_hal.c。 系统时钟初始化,需要用到库文件stm32h7xx_hal_rcc.c。 前面的两步完成后,就可以开始做用户需要的按键、串口等方面的初始化...
第1步:复制bsp_beep.c,bsp_beep.h,bsp_tim_pwm.c和bsp_tim_pwm.h到自己的工程目录,并添加到工程里面。 第2步:根据自己使用的蜂鸣器驱动引脚和频率,修改下面的宏定义即可 AI检测代码解析 #ifdef BEEP_HAVE_POWER /* 有源蜂鸣器 */ /* PA8 */ ...
串口驱动的核心文件为:bsp_uart_fifo.c, bsp_uart_fifo.h。 这里面包括有串口硬件的配置函数、中断处理函数,以及串口的读写接口函数。还有ptinft函数的实现。 每个串口都有2个FIFO缓冲区,一个是用于发送数据的TX_FIFO,一个用于保存接收数据的RX_FIFO。
注意:由于函数UartSend做了static作用域限制,仅可在bsp_uart_fifo.c文件中调用。函数RS485_SendStr,RS485_SendBuf或者comSendBuf是供用户调用的。 下面我们再来看看接收的函数: /*** * 函数名: comGetChar * 功能说明: 从接收缓冲区读取1字节,非阻塞。无论有无数据均立即返回。 * 形 参: _ucPort: 端口...
每个GPIO都可以配置成外部中断/事件模式,但要特别注意,引脚要配置成输入模式,在芯片的内部有个多路选择器,选择引脚与16个外部中断/事件EXTI0 - EXTI15中的那个导通。这就决定了,每个外部中断/事件只能与一个引脚导通,如果用户配置了多个引脚PA0,PB0,PC0等,那么只有一个能够与EXTI0导通。
1.开发板固件基于官方的4.4.2版本,引出了所有非占用的引脚,调用方法几乎和官方一样,如要使用A0:Pin('PA0',Pin.IN,Pin.PULL_UP)。 2.摄像头建议购买带自动对焦的ov5640。 3.连接屏幕的fpc是8P同向。 四.补充: 1.因为是学生时间有限,有空我尽量会更新。
当前程序使用的串口打印就是用的低功耗串口,即USART1和LPUART1都可以使用PA9和PA10。 上电启动了一个软件定时器,每100ms翻转一次LED2。 USART1和LPUART都可以使用PA9和PA10引脚做串口打印功能,本例子是用的LPUART做开发板串口打印。 LPUART可以选择HSI时钟,LSE时钟和D3PCLK1时钟,在bsp_lpuart_fifo.c文件...