getchar()支持DA14683 / SmartSnippets / UM-B-047 / Blinky

了解更多常见问题教程

6个员额/ 0个新员额
最后发表
ramig972
离线
最后看到:8个月1个星期前
加入:2020-05-06 20:31
getchar()支持DA14683 / SmartSnippets / UM-B-047 / Blinky

你好,

我已经安装了

SmartSnippets工作室v.16.3.918

SDK (DA1468x_DA15xxx_SDK_1.0.14.1081.zip)

(但不是SDK的补丁)

运行中描述的示例

用户手册
DA1468x入门
开发工具包
嗯- b - 047

所有的工作细节都在PDF文档中

虽然printf()工作得很好,但getchar()不工作

在文件中c在函数的模板中

static void system_init(void *pvParameters)

行后添加

#如果定义CONFIG_RETARGET
retarget_init ();
# endif

行:

printf (" \ n > > % s % s % d \ n”,__FILE__, __FUNCTION__, __LINE__);。fflush (stdout);
Char c = getchar();
Printf ("%x %d %c\n", c,c,c);

第二个printf()不会发生

我已经上传了这个论坛主题的C文件,把它的文件扩展名从C改为PDF(唯一的上传方式)

非常感谢你的真知灼见。

最好的

附件:
设备:
PM_Dialog
离线
最后看到:3小时14分钟前
工作人员
加入:2018-02-08 11:03
嗨ramig972,

嗨ramig972,

你能不能在调试模式下运行一下,看看是哪里卡住了?请分享截图。

不幸的是,我无法打开附件文件。能不能把拉链拉上再装上去?

谢谢,PM_Dialog

ramig972
离线
最后看到:8个月1个星期前
加入:2020-05-06 20:31
在main.c文件中

在main.c文件中

system_init()函数

添加大胆的行:

#如果定义CONFIG_RETARGET
retarget_init ();
# endif

printf (" \ n > > % s % s % d \ n”,__FILE__, __FUNCTION__, __LINE__);。fflush (stdout);
Char c = getchar();
Printf ("%x %d %c\n", c,c,c);

如果看到执行步骤的第二个printf()语句,请分享

PM_Dialog
离线
最后看到:3小时14分钟前
工作人员
加入:2018-02-08 11:03
嗨ramig972,

嗨ramig972,

您不应该在system_init()中调用此代码段,因为它将延迟系统初始化。请尝试在prvTemplateTask中执行它。您可能需要增加堆大小。

谢谢,PM_Dialog

ramig972
离线
最后看到:8个月1个星期前
加入:2020-05-06 20:31
这是原始代码。

这是原始代码。

我再次尝试增加堆栈大小并移动:

/*在这里启动主任务(文本菜单可通过UART1来控制应用程序)*/
OS_TASK_CREATE("Template", /*分配给任务的文本名称,for
调试;不被内核使用。*/
prvTemplateTask, /*实现任务的函数。*/
NULL, /*传递给任务的参数。*/
2048年,
// 200 * OS_STACK_WORD_SIZE, /*分配给任务栈的字节数。*/

mainTEMPLATE_TASK_PRIORITY, /*分配给任务的优先级。*/
task_h);/*任务句柄*/
OS_ASSERT (task_h);

/

static void prvTemplateTask(void *pvParameters)

OS_TICK_TIME xNextWakeTime;
静态uint32_t test_counter = 0;

/*初始化xNextWakeTime -这只需要做一次。*/
xNextWakeTime = OS_GET_TICK_COUNT ();

(,){

////////////////////////////////////////////////////////////////
printf (" \ n \ n > > > % s % s % d \ n”,__FILE__, __FUNCTION__, __LINE__);
。fflush (stdout);

//从键盘读取下一个字符。
Char c = getchar ();
。fflush (stdin);

printf (" > > > % s % s % d \ n”,__FILE__, __FUNCTION__, __LINE__);
。fflush (stdout);
如果(isprint ((int) c)) {
Printf (">>> %c %d %x\n", c,c,c);
其他}{
Printf (">>> %d %x\n", c,c);

。fflush (stdout);

//////////////////////////////////////////////////////////////////

仍然不起作用。只有

获得单一打印输出和闪烁测试不工作:

> > > . . / c prvTemplateTask 141

PM_Dialog
离线
最后看到:3小时14分钟前
工作人员
加入:2018-02-08 11:03
嗨ramig972

嗨ramig972

请修改bsp_defaults.h中__HEAP_SIZE的值,好吗?

谢谢,PM_Dialog