AT-START-F405测评 1 开箱和基本外设评测
本帖最后由 一路向北lm 于 2024-5-23 22:11 编辑开箱图正面
反面
usb接口由之前的安卓口换成了type-c啦
at-link 仿真器接口也换成了type-c了
本帖最后由 一路向北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: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;
}
串口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;
}
分享不错 这个type-C接口必须好评啊。以前的USB每次都要去找线。
页:
[1]