ST的hal库有问题手头有STM32L4或STM32F7的帮忙测试DMA SD卡
STM32F756 DCMI +GC0308 Camera图片不正常
STM32F722RET6无法被JLINK/STLIN和IAR/KEIL识别
STM32F767以太网换PIN脚无数据
STM32F7 DSP库使用
没有人分享一下STM32F767 硬JPEG 编码解码吗
求STM32F777与FPGA通过FMC通信的参考设计
求STM32F7 1.15版本 固件库
STM32F746使用HAL库串口无法中断收数据
STM32F7xx AXIM & ITCM
宏定义相当于替换,你看看 while(GPIO_Pin_Set(GPIOD,PIN8) == 1) 是个什么?
GPIO_Pin_Set()一般是没有返回值的viod类型, 不知道你的函数定义里面是什么样的。标准库函数中,读是“void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)”,写是“uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)”
至于下面一条说 “原子的案例里这样也不能写”,那得看报什么错?本身这个函数这样写是没有语法问题的。
评分
查看全部评分
if里需求的是布尔量,而你是一个数字量,当然报错
评分
查看全部评分
那应该怎么写
就是判断BUSY 是否高电位
这样写也不对呀
if(GPIOD->IDR&pin8)关于这个 我认为应该写成 if((GPIOD->IDR&pin8)==0x100)这样 就行了。仅代表个人意见
建议,使用HAL库吧,方便。
用法:
if(HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_8)==0)
{
;
}
else
{
;
}
如果想用宏的话,可以这样:
#define BUSY HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_8)
关于详细的 STM32使用HAL库操作GPIO ,请参考:
http://www.cnblogs.com/feipeng8848/p/7248898.html
评分
查看全部评分
评分
查看全部评分
GPIO_Pin_Set(GPIOD,PIN8,x) 的写法只是固件库适用,HAL库不能用,况且这里是写不是读。
F7X系列只能用HAL库:
写:HAL_GPIO_WritePin(GPIOD, GPIO_PIN_8,GPIO_PIN_SET)
读:HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_8 )
评分
查看全部评分