硬汉嵌入式论坛

 找回密码
 立即注册
查看: 516|回复: 3
收起左侧

[技术讨论] 雅特力at32f403a的gpio复用配置问题

[复制链接]

2

主题

0

回帖

6

积分

新手上路

积分
6
发表于 2023-8-4 15:18:38 | 显示全部楼层 |阅读模式
我使用的是at32f403a,看Usart例程没有找到对应的把GPIO配置成Usart功能啊,只是把GPIO配置成了MUX功能,因为GPIO有多个功能映射到同一个口,不知道它是怎么把它映射到USART功能上的,代码就是例程的代码:




  gpio_init_type gpio_init_struct;


  /* enable the uart2 and gpio clock */
  crm_periph_clock_enable(CRM_USART2_PERIPH_CLOCK, TRUE);
  crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);


  gpio_default_para_init(&gpio_init_struct);


  /* configure the uart2 tx,rx,de pin */
  gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  gpio_init_struct.gpio_out_type  = GPIO_OUTPUT_PUSH_PULL;
  gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  gpio_init_struct.gpio_pins = GPIO_PINS_2;
  gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  gpio_init(GPIOA, &gpio_init_struct);
  
  gpio_init_struct.gpio_pins = GPIO_PINS_3;
  gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
  gpio_init_struct.gpio_pull = GPIO_PULL_UP;
  gpio_init(GPIOA, &gpio_init_struct);
  
  gpio_init_struct.gpio_pins = GPIO_PINS_1;
  gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
  gpio_init_struct.gpio_out_type  = GPIO_OUTPUT_PUSH_PULL;
  gpio_init(GPIOA, &gpio_init_struct);
  
  gpio_bits_reset(GPIOA, GPIO_PINS_1);
  
  /* configure uart2 param */
  usart_init(USART2, RS485_BAUDRATE, USART_DATA_8BITS, USART_STOP_1_BIT);
  
  usart_flag_clear(USART2, USART_RDBF_FLAG);
  usart_interrupt_enable(USART2, USART_RDBF_INT, TRUE);
  
  usart_receiver_enable(USART2, TRUE);
  usart_transmitter_enable(USART2, TRUE);
  usart_enable(USART2, TRUE);
  
  nvic_irq_enable(USART2_IRQn, 1, 0);

也没有调用gpio_pin_remap_config这个配置函数,不同是怎么映射过来USART的,这个IO也有可能映射其他的复用的啊,望大神指教一下,谢谢

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-8-4 15:54:02 | 显示全部楼层
下载他们的AT32 Work Bench图形化配置软件试试,不支持你当前这个型号没关系,其他F4系列配置下看看差异,这样还剩点事,不用研究手册了

https://www.arterytek.com/cn/product/AT32F403A.jsp
回复

使用道具 举报

0

主题

214

回帖

214

积分

高级会员

积分
214
发表于 2023-8-4 17:36:37 | 显示全部楼层
调用这个函数gpio_pin_mux_config,参数分别是GPIO,GPIO的引脚,MUX功能。 MUX查看参考手册RM的GPIO章节的复用部分。
回复

使用道具 举报

4

主题

22

回帖

34

积分

新手上路

积分
34
发表于 2023-8-10 19:27:11 | 显示全部楼层
楼上正解,另外gpio_pin_mux_config的使用先要开启IOMUX时钟。gpio_pin_mux_config 函数有注释选哪个参数
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 21:11 , Processed in 0.205402 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表