GPIO 引脚控制 SAMC21
Posted
技术标签:
【中文标题】GPIO 引脚控制 SAMC21【英文标题】:GPIO Pin Control SAMC21 【发布时间】:2017-12-02 01:05:27 【问题描述】:我在尝试使用来自 Atmel 的新 SAMC21 Xplained Pro 时遇到问题。我目前正在尝试了解 Cortex M0+ 的基础知识,但我卡住了。我在 Atmel Studio 中使用 ASF。我从基础开始,学习如何用开关切换 LED。这是 Atmel 的代码,完美无瑕:
void configure_port_pins(void)
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_INPUT;
config_port_pin.input_pull = PORT_PIN_PULL_UP;
port_pin_set_config(BUTTON_0_PIN, &config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(LED_0_PIN, &config_port_pin);
int main (void)
system_init();
configure_port_pins();
while (true)
bool pin_state = port_pin_get_input_level(BUTTON_0_PIN);
port_pin_set_output_level(LED_0_PIN, !pin_state);
然后我想尝试一些更简单的东西,比如:
int main (void)
system_init();
configure_port_pins();
port_pin_set_output_level(LED_0_PIN,0);
while (1)
port_pin_set_output_level(LED_0_PIN,0);
delay_ms(500);
port_pin_set_output_level(LED_0_PIN,1);
但它不起作用。就像它不识别 bool 数据类型一样。也许我错过了一些东西。谢谢你的回答。
【问题讨论】:
【参考方案1】:您认为代码不工作是因为 led 一直亮着(或不亮,这取决于硬件的连接方式)?这是因为你在第二次更改后没有睡觉,所以输出级别 1 只设置了很短的时间(准确地说,port_pin_set_output_level
执行的时间),你的眼睛不够快,看不到它。
【讨论】:
是的,你是对的,但这也不起作用:while (1) port_pin_set_output_level(LED_0_PIN,0);延迟毫秒(500); port_pin_set_output_level(LED_0_PIN,1);延迟毫秒(500);以上是关于GPIO 引脚控制 SAMC21的主要内容,如果未能解决你的问题,请参考以下文章
Arduino ESP32配置静态IP并通过网页控制GPIO引脚
如何通过 Apache Web 服务器控制 Raspberry Pi 的串行 GPIO 引脚