一路向北lm 发表于 2024-5-23 22:07

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

本帖最后由 一路向北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"


#defineTMR                  TMR1
#defineTMR_PERIPH_CLOCK       CRM_TMR1_PERIPH_CLOCK
#defineTMR_IRQn               TMR1_OVF_TMR10_IRQn
#defineTMR_IRQHandler         TMR1_OVF_TMR10_IRQHandler


void bsp_timer_init(void);


#endifint 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);

#endifint 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;
}

gangong 发表于 2024-10-29 16:24

分享不错

问天少年 发表于 2024-11-12 21:36

这个type-C接口必须好评啊。以前的USB每次都要去找线。
页: [1]
查看完整版本: AT-START-F405测评 1 开箱和基本外设评测