你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
bargagebaobei 发表于 2018-4-4 15:25 GPIO_Pin_Set(GPIOD,PIN8,x)是设置 不是获取。 if里需求的是布尔量,而你是一个数字量,当然报错 ...
bargagebaobei 发表于 2018-4-4 15:26 主要是你需要先说清楚到底想要干嘛,我们才能帮你达到
Angel_YY 发表于 2018-4-4 15:28 while(BUSY == 1); 你这个BUSY编译器不认识啊,如果是调用GPIO_Pin_Set(GPIOD,PIN8,x),必须 while(BUSY(2) ...
Your UAT Feedback is needed within today.
5.18活动板子会不会是STM32L4呢
STM32隐藏
STM32 CUBE软件中找不到STM32L4系列单片机
应用
AAA
标签选择失败
10.59
测试文章
tiwen
宏定义相当于替换,你看看 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编译器不认识啊,如果是调用GPIO_Pin_Set(GPIOD,PIN8,x),必须
while(BUSY(2) == 1);
这样编译器才认识BUSY是个啥东西。
函数再调用的时候不能只写函数名称,要写括号和参数的,你这里都没有,编译器怎能知道是要掉用什么,所以只能报错了。
评分
查看全部评分
就是判断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
评分
查看全部评分
评分
查看全部评分