/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(2000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_All);
}
/* USER CODE END 3 */ 奏奏奏 发表于 2017-3-15 09:44
这个是全部反转GPIOB的值吧 直接右键,看一下代码实现,不就很清楚了嘛!!!!开源,啥叫开源,就是用来看滴!!!;P;P;P 队长shiwo 发表于 2017-3-15 08:45
#define IO_Data_Set(x) HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0))
这样子行不行的 ...
你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端口所有的输出都是"1";如果你要按你的意愿来做,只有直接写寄存器。自己做个函数吧。网上例子挺多的。 MrJiu 发表于 2017-3-15 10:13
直接右键,看一下代码实现,不就很清楚了嘛!!!!开源,啥叫开源,就是用来看滴!!! ...
看的懂那个库函数的,就是找不到GPIO_Write()功能的函数而已, zhao.zhao 发表于 2017-3-15 10:16
你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端 ...
void IO_Write_DataBit(uchar data)
{
GPIOC->ODR |= 0xff;
GPIOC->ODR &= data;
}
我也是这样想的,直接操作寄存器算了,上面那个函数应该可以实现了吧 zhao.zhao 发表于 2017-3-15 10:16
你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端 ...
#define GPIOCout(x) GPIOC->ODR=x; // GPIOC端口输出 X
先把GPIOC都设置为推挽输出,然后试试这个 ";"可以不要写,程序中直接调用"GPIOCout(0x00f0);" zhao.zhao 发表于 2017-3-15 10:29
";"可以不要写,程序中直接调用"GPIOCout(0x00f0);"
非常感谢了
页:
1
[2]