单片机USmart实验

单片机:STM32F407

开发板:DMF407电机开发板

平台:keil V5.31

HSE 为8MHZ

HSI为16MHZ

主函数:

复制代码
int main(void)
{

    HAL_Init();                             /* 初始化HAL库 */
    sys_stm32_clock_init(336, 8, 2, 7);     /* 设置时钟,168Mhz */
    delay_init(168);                        /* 延时初始化 */
    usart_init(115200);                     /* 串口初始化为115200 */
    usmart_dev.init(84);                    /* USMART初始化 */
    led_init();                             /* 初始化LED */
    lcd_init();                             /* 初始化LCD */
    lcd_show_string(30, 50, 200, 16, 16, "STM32", RED);
    lcd_show_string(30, 70, 200, 16, 16, "USMART TEST", RED);
    lcd_show_string(30, 90, 200, 16, 16, "ATOM@ALIENTEK", RED);
    
    while (1)
    {
        LED0_TOGGLE(); /*红灯闪烁*/
        delay_ms(1000);
    }
}

配置:

复制代码
/* 函数名列表初始化(用户自己添加)
 * 用户直接在这里输入要执行的函数名及其查找串
 */
struct _m_usmart_nametab usmart_nametab[] =
{
#if USMART_USE_WRFUNS == 1      /* 如果使能了读写操作 */
    (void *)read_addr, "uint32_t read_addr(uint32_t addr)",
    (void *)write_addr, "void write_addr(uint32_t addr,uint32_t val)",
#endif
    (void *)delay_ms, "void delay_ms(uint16_t nms)",
    (void *)delay_us, "void delay_us(uint32_t nus)",
        
    (void *)lcd_clear, "void lcd_clear(uint16_t color)",
    (void *)lcd_fill, "void lcd_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint16_t color)",
    (void *)lcd_draw_line, "void lcd_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)",
    (void *)lcd_draw_circle, "void lcd_draw_circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color)",
    (void *)lcd_draw_rectangle, "void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)",
        
    (void *)lcd_show_num, "void lcd_show_num(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint16_t color)",
    (void *)lcd_show_xnum, "void lcd_show_xnum(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint8_t mode, uint16_t color)",
    (void *)lcd_show_string, "void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color)",
    (void *)lcd_draw_point, "void lcd_draw_point(uint16_t x, uint16_t y, uint16_t color)",
    (void *)lcd_read_point, "uint16_t lcd_read_point(uint16_t x, uint16_t y)",
    (void *)lcd_display_dir, "void lcd_display_dir(uint8_t dir)",

    (void *)led_set, "void led_set(uint8_t sta)",
    (void *)test_fun, "void test_fun(void(*ledset)(uint8_t), uint8_t sta)",
};

通过USB线连接PC和USART,通过sscom测试。

烧录后上电:

串口输入?(哟勾选"加回车换行")

发送:list

发送:id

发送:hex 123

发送:dec 0x123

发送:runtime 1

发送:lcd_clear(123456)

发送:delay_ms(1000)

发送:lcd_clear(0xff)

发送:lcd_clear(0xf800)

发送:lcd_draw_circle(100, 100, 80, 0xff)

通过串口调试,确实方便了很多,减少下载次数。

相关推荐
SmartRadio1 小时前
STM32WLE5 Smart TDMA 完整工程(STOP2 低功耗终极版)-【10】
stm32·单片机·lora·tdma·低功耗自组网·smart tdma
国科安芯1 小时前
AS32S601芯片抗辐照性能试验验证与空间环境适应性分析
前端·分布式·单片机·嵌入式硬件·架构·risc-v·安全性测试
sxstj1 小时前
stm32最小板和uno I2C能直接连接吗?
stm32·单片机·嵌入式硬件
sxstj1 小时前
5伏的传感器能直接在stm32上使用吗?
stm32·单片机·嵌入式硬件
搁浅小泽1 小时前
SCM、MCU、SoC 三者区别与详解
单片机·嵌入式硬件
Silicore_Emma2 小时前
芯谷科技—D3815 40V/0.8A 高调光比LED恒流驱动器
单片机·消费电子·芯谷科技·智能家居系统·恒流驱动器·控制器电路·智能照明设备
jllllyuz2 小时前
STM8S 系列单片机 + RC522读写 IC 卡
单片机·嵌入式硬件·mongodb
SmartRadio2 小时前
STM32WLE5 LoRa Smart TDMA 完整协议栈工程实现 -【3】
stm32·单片机·嵌入式硬件·lora·tdma·自组网·smart tdma
三佛科技-134163842122 小时前
LP2188A,LP2188AL,LP2188BL如何区分?应用电路分析
单片机·嵌入式硬件·物联网·智能家居·pcb工艺