打印
[AT32F405]

AT-START-F405测评 1 开箱和基本外设评测

[复制链接]
1404|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 一路向北lm 于 2024-5-23 22:11 编辑

开箱图正面



反面


usb接口由之前的安卓口换成了type-c啦


at-link 仿真器接口也换成了type-c了



使用特权

评论回复
沙发
一路向北lm|  楼主 | 2024-5-23 22:15 | 只看该作者
本帖最后由 一路向北lm 于 2024-5-23 22:17 编辑

LED(LED2~LED4)
#include "bsp_led.h"


void bsp_led_init()
{
         gpio_init_type gpio_init_struct;

   /* enable the led clock */
   crm_periph_clock_enable(LED2_GPIO_CRM_CLK, TRUE);
         crm_periph_clock_enable(LED3_GPIO_CRM_CLK, TRUE);
         crm_periph_clock_enable(LED4_GPIO_CRM_CLK, TRUE);

   /* set default parameter */
   gpio_default_para_init(&gpio_init_struct);

  /* configure the led gpio */
  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_OUTPUT;
        gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
        
  gpio_init_struct.gpio_pins = LED2_PIN;
  gpio_init(LED2_GPIO, &gpio_init_struct);
        gpio_init_struct.gpio_pins = LED3_PIN;
  gpio_init(LED3_GPIO, &gpio_init_struct);
        gpio_init_struct.gpio_pins = LED4_PIN;
  gpio_init(LED4_GPIO, &gpio_init_struct);
}

#ifndef __BSP_LED_H__
#define __BSP_LED_H__
#include "at32f402_405.h"

/**************** define gpio led ******************/
#define LED2_PIN                         GPIO_PINS_4
#define LED2_GPIO                        GPIOF
#define LED2_GPIO_CRM_CLK                CRM_GPIOF_PERIPH_CLOCK

#define LED3_PIN                         GPIO_PINS_5
#define LED3_GPIO                        GPIOF
#define LED3_GPIO_CRM_CLK                CRM_GPIOF_PERIPH_CLOCK

#define LED4_PIN                         GPIO_PINS_6
#define LED4_GPIO                        GPIOF
#define LED4_GPIO_CRM_CLK                CRM_GPIOF_PERIPH_CLOCK


#define LED2_ON()                        (LED2_GPIO->clr = LED2_PIN)
#define LED2_OFF()                       (LED2_GPIO->scr = LED2_PIN)
#define LED2_TOGGLE()                    (LED2_GPIO->tpgr = LED2_PIN)

#define LED3_ON()                        (LED3_GPIO->clr = LED3_PIN)
#define LED3_OFF()                       (LED3_GPIO->scr = LED3_PIN)
#define LED3_TOGGLE()                    (LED3_GPIO->tpgr = LED3_PIN)

#define LED4_ON()                        (LED4_GPIO->clr = LED4_PIN)
#define LED4_OFF()                       (LED4_GPIO->scr = LED4_PIN)
#define LED4_TOGGLE()                    (LED4_GPIO->togr = LED4_PIN)


void bsp_led_init(void);

#endif

int main()
{
    system_clock_config();
        bsp_led_init();
        
        LED2_ON();
        LED3_ON();
        LED4_ON();
        
        while(1)
        {

        }         
        return 0;
}
点亮三颗LED:



使用特权

评论回复
板凳
一路向北lm|  楼主 | 2024-5-23 22:21 | 只看该作者
本帖最后由 一路向北lm 于 2024-5-23 22:45 编辑

TIMER,基本定时,中断翻转LED(100MS)
#include "bsp_timer.h"

void bsp_timer_init()
{
  crm_periph_clock_enable(TMR_PERIPH_CLOCK, TRUE);
  tmr_base_init(TMR, 999, 216- 1);
  tmr_cnt_dir_set(TMR, TMR_COUNT_UP);
  tmr_interrupt_enable(TMR, TMR_OVF_INT, TRUE);
  nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  nvic_irq_enable(TMR_IRQn, 1, 0);
  tmr_counter_enable(TMR, TRUE);
}


void TMR_IRQHandler(void)
{
        static uint16_t count = 0;
  if(tmr_interrupt_flag_get(TMR, TMR_OVF_FLAG) == SET)
  {
    /* add user code... */
                count++;
                if(count == 100)
                {
                   count = 0;
                        LED4_TOGGLE();
                }
               
    tmr_flag_clear(TMR, TMR_OVF_FLAG);
  }
}
#ifndef __BSP_TIMER_H__
#define __BSP_TIMER_H__
#include "at32f402_405.h"
#include "bsp_led.h"


#define  TMR                    TMR1
#define  TMR_PERIPH_CLOCK       CRM_TMR1_PERIPH_CLOCK
#define  TMR_IRQn               TMR1_OVF_TMR10_IRQn
#define  TMR_IRQHandler         TMR1_OVF_TMR10_IRQHandler


void bsp_timer_init(void);


#endif
int main()
{
    system_clock_config();
        bsp_led_init();
        bsp_timer_init();
        
        while(1)
        {

        }         
        return 0;
}

使用特权

评论回复
地板
一路向北lm|  楼主 | 2024-5-23 22:45 | 只看该作者
串口printf
#include "bsp_uart.h"

void bsp_uart_init(uint32_t baudrate)
{
    gpio_init_type gpio_init_struct;

    /* enable the uart and gpio clock */
    crm_periph_clock_enable(PRINT_UART_CRM_CLK, TRUE);
    crm_periph_clock_enable(PRINT_UART_TX_GPIO_CRM_CLK, TRUE);
    gpio_default_para_init(&gpio_init_struct);

    /* configure the uart tx 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 = PRINT_UART_TX_PIN;
    gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
    gpio_init(PRINT_UART_TX_GPIO, &gpio_init_struct);

    gpio_pin_mux_config(PRINT_UART_TX_GPIO, PRINT_UART_TX_PIN_SOURCE, PRINT_UART_TX_PIN_MUX_NUM);

    /* configure uart param */
    usart_init(PRINT_UART, baudrate, USART_DATA_8BITS, USART_STOP_1_BIT);
    usart_transmitter_enable(PRINT_UART, TRUE);
    usart_enable(PRINT_UART, TRUE);
}


int fputc(int ch, FILE *f)
{
    while(usart_flag_get(PRINT_UART, USART_TDBE_FLAG) == RESET);
    usart_data_transmit(PRINT_UART, (uint16_t)ch);
    while(usart_flag_get(PRINT_UART, USART_TDC_FLAG) == RESET);
    return ch;
}
#ifndef __BSP_UART_H__
#define __BSP_UART_H__
#include "at32f402_405.h"
#include <stdio.h>

/**************** define print uart ******************/
#define PRINT_UART                       USART1
#define PRINT_UART_CRM_CLK               CRM_USART1_PERIPH_CLOCK
#define PRINT_UART_TX_PIN                GPIO_PINS_9
#define PRINT_UART_TX_GPIO               GPIOA
#define PRINT_UART_TX_GPIO_CRM_CLK       CRM_GPIOA_PERIPH_CLOCK
#define PRINT_UART_TX_PIN_SOURCE         GPIO_PINS_SOURCE9
#define PRINT_UART_TX_PIN_MUX_NUM        GPIO_MUX_7


void bsp_uart_init(uint32_t baudrate);

#endif
int main()
{
    system_clock_config();
        bsp_led_init();
        bsp_timer_init();
        bsp_uart_init(115200);
       
        while(1)
        {
                if(time_flag)
                {
                        time_flag = 0;
            LED4_TOGGLE();
                        printf("led4 toggle ....\n");
                }
        }         
        return 0;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

270

主题

3698

帖子

74

粉丝