现在直接打开F746的串口示例,学习如何使用GPIO及串口的使用。
UART_TwoBoards_ComPolling使用是轮询方式对串口数据进行读写,这种方式已经被大部分实时应用所抛弃,但鉴于对当前
这块板子的硬件还不了解,可以先用它入门。
首先进入main函数,一开始就是CPU_CACHE_Enable(),HAL_Init(),SystemClock_Config()
这些函数先不管,我们重点来看BSP_LED_Init(LED1)函数。
LED1对应的电路板上的LD1 指示灯,查看下硬件电路,其被连在了GPIOI_1号引脚上
在初始化里,完成了gpio结构体的创建,然后将结构体传入了HAL_GPIO_Init()函数。
后面是uart的初始化,这里没有抽象成函数,直接怼在了main函数里,让人看着不舒服。
这里的USARTx是一个宏,指向了USART6
然后就是UART的初始化
然后就是调用HAL_UART_Transmit()函数发送数据了。
这里还定义了一个用户控制的按键,使用的是GPIOI_11引脚,按键使用BSP_PB_Init()进行按键的中断初始化
查看按键的使用中断方式检测,然后调用回调函数。
编译,下载,然后按下reset按键,然后使用终端可以看到串口的打印信息。
总体来说,使用HAL库还是很方便的,让用户省去了大量耗在底层的时间,但效率相比于标准库可能会有所降低,更比不上直接使用寄存器操作了,但使用HAL库仍然是个大趋势,这一块的文档也还需要原厂和方案商慢慢完善了。
现在直接打开F746的串口示例,学习如何使用GPIO及串口的使用。
UART_TwoBoards_ComPolling使用是轮询方式对串口数据进行读写,这种方式已经被大部分实时应用所抛弃,但鉴于对当前
这块板子的硬件还不了解,可以先用它入门。
首先进入main函数,一开始就是CPU_CACHE_Enable(),HAL_Init(),SystemClock_Config()
这些函数先不管,我们重点来看BSP_LED_Init(LED1)函数。
LED1对应的电路板上的LD1 指示灯,查看下硬件电路,其被连在了GPIOI_1号引脚上
在初始化里,完成了gpio结构体的创建,然后将结构体传入了HAL_GPIO_Init()函数。
后面是uart的初始化,这里没有抽象成函数,直接怼在了main函数里,让人看着不舒服。
这里的USARTx是一个宏,指向了USART6
然后就是UART的初始化
然后就是调用HAL_UART_Transmit()函数发送数据了。
这里还定义了一个用户控制的按键,使用的是GPIOI_11引脚,按键使用BSP_PB_Init()进行按键的中断初始化
查看按键的使用中断方式检测,然后调用回调函数。
编译,下载,然后按下reset按键,然后使用终端可以看到串口的打印信息。
总体来说,使用HAL库还是很方便的,让用户省去了大量耗在底层的时间,但效率相比于标准库可能会有所降低,更比不上直接使用寄存器操作了,但使用HAL库仍然是个大趋势,这一块的文档也还需要原厂和方案商慢慢完善了。