GPIO_PuPd_NOPULL
时间: 2023-08-05 14:06:46 浏览: 63
GPIO_PuPd_NOPULL是指GPIO(通用输入/输出)的上拉/下拉设置为无上拉和无下拉。在这种模式下,GPIO引脚既不会被上拉(pulled up)也不会被下拉(pulled down),也就是说引脚的电平由外部电路决定。这种模式适用于需要外部电路来控制引脚电平的情况,例如连接到外部设备的输入引脚。
相关问题
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
在引用\[2\]中,GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 是设置GPIO引脚的上拉/下拉/浮空模式的一种选项。在这种模式下,引脚不会被上拉或下拉,而是保持浮空状态。这意味着引脚不会被外部电源或电阻所影响,而是由外部设备的输入信号直接控制。
#### 引用[.reference_title]
- *1* *2* [STM32自学笔记--1.GPIO初始化配置](https://blog.csdn.net/qq_57346347/article/details/124599976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [STM32驱动学习---GPIO](https://blog.csdn.net/weixin_43980926/article/details/123643122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
void LCD_GPIO_Init() { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_SetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); CS=1; SID=1; SCLK=1; }这是我的代码,发生错误如上
这个错误是因为你的代码中有一行语句在声明之后,导致编译器无法理解。具体来说,是因为 `CS=1;`、`SID=1;` 和 `SCLK=1;` 这三行语句在函数体中出现在了声明语句之后。
你需要将这三行语句移动到 `GPIO_Init` 语句之后,或者将它们放到 `GPIO_Init` 语句中的某个位置。例如:
```c
void LCD_GPIO_Init() {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// 将 CS、SID 和 SCLK 的赋值语句移动到 GPIO_Init 语句之后
GPIO_SetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);
CS=1;
SID=1;
SCLK=1;
}
```
或者将这三行语句放到 `GPIO_Init` 语句中的某个位置。例如:
```c
void LCD_GPIO_Init() {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// 将 CS、SID 和 SCLK 的赋值语句放到 GPIO_Init 语句中
GPIO_SetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); CS=1; SID=1; SCLK=1;
}
```
你可以根据自己的需要选择其中一种方式进行修改。
相关推荐














