完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
#include #include #define DAC_DEV_NAME "dac1" /* DAC 设备名称 */ #define DAC_DEV_CHANNEL 1 /* DAC 通道 */ #define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 << 12) /* 转换位数为12位 */ static int dac_vol_sample(int argc, char *argv[]) { rt_dac_device_t dac_dev; rt_uint32_t value, vol; rt_err_t ret = RT_EOK; /* 查找设备 */ dac_dev = (rt_dac_device_t)rt_device_find(DAC_DEV_NAME); if (dac_dev == RT_NULL) { rt_kprintf("dac sample run failed! can't find %s device!n", DAC_DEV_NAME); return RT_ERROR; } /* 打开通道 */ ret = rt_dac_enable(dac_dev, DAC_DEV_CHANNEL); /* 设置输出值 */ value = atoi(argv[1]); rt_dac_write(dac_dev, DAC_DEV_CHANNEL, &value); rt_kprintf("the value is :%d n", value); /* 转换为对应电压值 */ vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the voltage is :%d.%02d n", vol / 100, vol % 100); /* 延时查看效果,关闭通道后无输出 */ rt_thread_mdelay(500); /* 关闭通道 */ ret = rt_dac_disabled(dac_dev, DAC_DEV_CHANNEL); return ret; } 就是说,这段DAC的使用是没有main函数的,如果不用MSH强行编译的话,是运行不了的, 就想问怎么写这个的main函数,怎么把dac_vol_sample这个函数写到main里? |
|
相关推荐
2个回答
|
|
|
atoi的作用是把字符串转成数字。
可以在main函数中这么调用: char *argv[2] = {“”,”1234”}; dac_vol_sample(2,argv); 相当于通过dac输出数值1234对应的模拟量。 或者把函数改改,把要通过dac输出的数字量值直接传参给函数,就没必要用atoi了。 |
|
|
|
|
|
msh中输入:
dac_vol_sample 1234 os会调用dac_vol_sample函数,并且,argc是2,agrv[0]是“dac_vol_sample”,agrv[1]是“1234”。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1092 浏览 0 评论
3044 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9411 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2900 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2305 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 18:58 , Processed in 0.645959 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2483