完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我能够让 pwm 使用以下代码:
#include "ets_sys.h" #include "osapi.h" #include "user_interface.h" void show_mac (void) { unsigned char mac[6]; // wifi_get_macaddr ( STAtiON_IF, mac ); // os_printf ( "MAC: %02x:%02x:%02x:%02x:%02x:%02xn", // mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); } 无效 user_init() { uart_div_modify(0, UART_CLK_FREQ / 115200); gpio_init(); uint32_t io_info[1][3] = { {PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13,13}, }; uint32_t duty[1] = {500}; pwm_init(1000, duty,1,io_info); pwm_start(); // show_mac (); } 但是,如果我取消评论,只需第 7 行,如下所示: #include "ets_sys.h" #include "osapi.h" #include "user_interface.h" void show_mac (void) { unsigned char mac[6]; wifi_get_macaddr ( STATION_IF, mac ); // os_printf ( "MAC: %02x:%02x:%02x:%02x:%02x:%02xn", // mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); } 无效 user_init() { uart_div_modify(0, UART_CLK_FREQ / 115200); gpio_init(); uint32_t io_info[1][3] = { {PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13,13}, }; uint32_t duty[1] = {500}; pwm_init(1000, duty,1,io_info); pwm_start(); // show_mac (); } 它崩溃: ets 2013 年 1 月 8 日,第一个原因:4,启动模式:(1,0) 这特别奇怪,因为我甚至还没有调用 show_mac() 函数! 我正在使用 pfalcon/open-sdk 和工具链,它使用 v1.4.0 sdk。这是我正在使用的 makefile: # Makefile for older versions (<1.0) of Espressif "AT" firmware CC = xtensa-lx106-elf-gcc CFLAGS = -I. -mlongcalls LDLIBS = -nostdlib -Wl,--start-group -lmain -lupgrade -lnet80211 -lwpa -llwip -lpp -lphy -Wl,--end-group -lcirom -lgcc -lpwm LDFLAGS = -Teagle.app.v6.ld malarm-0x00000.bin: malarm esptool.py elf2image $^ malarm:malarm.o $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) malarm.o:malarm.c 闪光灯:malarm-0x00000.bin esptool.py write_flash 0 malarm-0x00000.bin 0x40000 malarm-0x40000.bin 连接: picocom -b 115200 --omap crcrlf /dev/ttyUSB0 有什么想法或想法吗?谢谢。 |
|
相关推荐
1个回答
|
|
首先,让我们逐步分析您提供的代码和问题。
问题:WDT在pwm_init上复位的原因? 在这个问题中,您似乎在询问为什么在初始化PWM(脉冲宽度调制)时,看门狗定时器(WDT)会复位。然而,您提供的代码并没有直接涉及到PWM初始化或看门狗定时器。 提供的代码: 1. 包含头文件:ets_sys.h, osapi.h, user_interface.h 2. 定义了一个名为show_mac的函数,该函数获取MAC地址并打印出来。但是,该函数中的wifi_get_macaddr和os_printf调用被注释掉了。 3. 定义了一个名为user_init的函数,但是函数体不完整,只有一个uart_div_modify宏调用。 现在,让我们尝试解决您的问题。 要解决WDT在PWM初始化时复位的问题,我们需要考虑以下几点: 1. 确保PWM初始化代码正确编写,没有导致意外复位的逻辑错误。 2. 检查看门狗定时器的配置,确保其在PWM初始化期间不会触发复位。 3. 如果可能,检查硬件连接和电源供应,以确保它们在PWM初始化期间稳定。 然而,由于您提供的代码与PWM初始化和看门狗定时器无关,我们无法直接解决您的问题。为了更好地帮助您,我们需要更多关于PWM初始化和看门狗定时器的代码和上下文信息。 关于您提供的代码,以下是一些建议: 1. 如果您希望显示MAC地址,请取消注释wifi_get_macaddr和os_printf调用。 2. 在user_init函数中,您需要完成函数体,以便在系统启动时执行所需的初始化操作。例如,您可以在此处初始化PWM或看门狗定时器。 如果您能提供更多关于PWM初始化和看门狗定时器的代码和详细信息,我们将能够更准确地回答您的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
598 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
443浏览 5评论
445浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 22:06 , Processed in 0.683708 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号