USB CDC 可变形参
生活随笔
收集整理的這篇文章主要介紹了
USB CDC 可变形参
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
控制臺的三種連接方式:
1、IP網絡
2、USB
3、UART
一:介紹USB CDC方式:
1、控制臺配置如下:
2、USB
Product ID 可以是:0x0000/0x5300/0x0238
不同的值代表不同的COM口
3、CDC配置
?二:介紹UART配置:
注意UART配置通道、波特率以及中斷優先級,如下:
?
#include "g_testThread.h"void led_toggle_callback(sf_console_cb_args_t * p_args);const sf_console_command_t g_sf_console_commands[] = {{ .command = (uint8_t *)"TOGGLE", //CMD.help = (uint8_t *)"Toggle an LED",.callback = led_toggle_callback, //控制臺命令回調.context = NULL},{.command = (uint8_t *)"cell",.help = (uint8_t *)"Cell Provisioning info to be saved\r\n"" Usage:\r\n"" cell <APN> <Context ID> <PDP Type>",.callback = led_toggle_callback,.context = NULL}, };/* 1. Create Menu Structure */ const sf_console_menu_t g_sf_console_root_menu = {.menu_prev = NULL,.menu_name = (uint8_t *)"Command",.num_commands = (sizeof(g_sf_console_commands)) / (sizeof(g_sf_console_commands[0])),.command_list = &g_sf_console_commands[0] };/*********************************************************************************************************************** * Function Name: led_toggle_callback * Description : Implement Callbacks * Callback function provided to g_sf_console_commands[0]. Function is invoked when user inputs * TOGGLE<CR> in the Console * Arguments : p_args - * Pointer to an instance type sf_console_cb_args_t * Return Value : None ***********************************************************************************************************************/ void led_toggle_callback(sf_console_cb_args_t * p_args) {bsp_leds_t leds;ioport_level_t level;/* Get LED list from BSP */R_BSP_LedsGet(&leds);/* Read current level */g_ioport.p_api->pinRead(leds.p_leds[0], &level);/* Invert level */g_ioport.p_api->pinWrite(leds.p_leds[0], (ioport_level_t)!level); }/* Test Thread entry function */ void g_testThread_entry(void) {/* TODO: add your own code here */while (1){g_sf_console0.p_api->prompt(g_sf_console0.p_ctrl, NULL, TX_WAIT_FOREVER);//TX_WAIT_FOREVER//TX_NO_WAIT//tx_thread_sleep (50); } }測試如下:
控制臺支持CMD:
“TOGGLE”
“CELL”
“?”
“?”:為幫助信息
?可變形參:
1、_vsnprintf,_vsnprintf是C庫函數之一,屬于可變參數。用于向字符串中打印數據、數據格式用戶自定義。頭文件是#include <stdarg.h>。
頭文件: #include <stdarg.h> 函數聲明: int _vsnprintf(char* str, size_t size, const char* format, va_list ap);?
如使用宏實現:
//#define SEMI_HOSTING #ifdef SEMI_HOSTING #ifdef __GNUC__ extern void initialise_monitor_handles (void); #endif #endif#ifdef SEMI_HOSTING #define xp_log(format, args...) printf(format, ##args) #else #define xp_log(format, args...) print_to_console(format, ##args) #endif?
轉載于:https://www.cnblogs.com/jiangzhaowei/p/8982172.html
總結
以上是生活随笔為你收集整理的USB CDC 可变形参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: loj #2305. 「NOI2017」
- 下一篇: android开发 RecyclerVi