完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
由于STM32标准库出现的时间早,现在市面上STM32的资料很多都是标准库的,但随着HAL库的CUBEMX的广泛使用,两个库之间的效率,内存使用,方便程度不同,为满足不同人的需求,两个库之间的相互转换十分重要。
1.本文提供部分常用函数作为参考,将实现功能相同的函数放在一起,具体定义和细微差异可以自行在编译器中搜索。 GPIO部分 获取IO电平状态: 标准库: uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) //举例: state = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7) HAL库: GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) //举例: state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) 定时器部分 使能/失能定时器 标准库: void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) //函数 //举例: TIM_Cmd(TIM2, ENABLE); TIM_Cmd(TIM2, DISABLE); HAL库: //1.使能: #define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN)) //宏定义 //举例: __HAL_TIM_ENABLE(&htim14); //2.失能: #define __HAL_TIM_DISABLE(__HANDLE__) //举例: __HAL_TIM_DISABLE(&htim14); 获得计数器计数值: 标准库: uint16_t TIM_GetCounter(TIM_TypeDef* TIMx) //举例: num = TIM_GetCounter(TIM3); HAL库: #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT) //举例: __HAL_TIM_GET_COUNTER(&htim14); 寄存器: //直接CNT寄存器读值 //举例: num = TIM14->CNT; |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
748浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
583浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
567浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 07:03 , Processed in 0.783029 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号