嗨对话框
我正在使用示例项目“Sample128”进行关于PWM2的实验。
在配置PWM2之前,一切正常(通过电话扫描设备),
但是,如果我配置P1_2以输出PWM2信号,请启用PWM2。
我无法获得设备的广告(通过电话扫描设备)。
我已配置的是下面的:
void gpio_reservations(无效)
{
......
保留_GPIO(PWM2_OUT,GPIO_PORT_1,GPIO_PIN_2,PID_PWM2);
}
void set_pad_functions(void)
{
......
gpio_configurepin(gpio_port_1,gpio_pin_2,输出,pid_pwm2,false);
}
void periph_init(空白)
{
......
set_tmr_enable(clk_per_reg_tmr_enabled);
set_tmr_div(clk_per_reg_tmr_div_8);
timer2_init(hw_can_pause_pwm_2_3_4,pwm_2_3_4_sw_pause_disabled,1000);
timer2_set_pwm2_duty_cycle(100);
}
现在我可以获得PWM2的输出信号,但设备无法做广告,
如果我删除了我在periph_init()中添加的代码,它可以再次进行广告。
有什么问题。(我有undef the SleepMode)

如果我将频率参数更改为16000,则运行良好。
timer2_init(hw_can_pause_pwm_2_3_4,pwm_2_3_4_sw_pause_disabled,16000);
虽然问题已经解决了,但我想知道为什么如果我将频率参数值设置为少数,它将工作异常?
为什么我的问题没有答案?!
嗨Sklin,
在我们的SDK中使用示例128程序吗?您使用哪个版本?我会尝试稍后再回复你。
问候!
PY
嗨py
SDK的版本是da14580_sdk_3.0.4.0.
嗨Sklin,
我尝试了你的写作的代码,它可以在我的机器中做PWM(1000频率)和BLE广告。你忘记提到任何其他设置吗?
问候!
PY
其他设置无论如何.IKE配置UART2,GPIO输入等。
有时它可以广告,但如果我用手机连接到它,然后读取特征,它会断开连接并不能再宣传。
如果我将PWM2频率设置为16000,一切都可以。
我多次尝试过。
您是否在建立连接后尝试阅读或写入特征?
是的,我使用了ConnectionManager并可以平滑地连接,断开,重新连接和读出特征。您在手机中使用哪个程序连接到电路板?也许是由于您在手机中使用的程序。
如果我用usbdongle作为中央设备。
它可以每次扫描DA14580,并可以连接,读出查询。无论如何都可以。
但如果用手机作为中央设备。
它可以首先扫描并连接DA14580,但在读出特征时断开连接。
然后无法扫描DA14580(但是usbdongle这次可以扫描DA14580)。
似乎问题是我的手机。
但我仍然无法接受这一点,因为如果我将PWM2设置为低频,则无法解释为什么它运作良好。
哦,多么麻烦~~~
嗨Sklin,
你用过任何睡眠模式吗?
问候!
PY
嗨py
不,我不使用任何睡眠模式,我在da14580_config中配置睡眠模式:
#undef cfg_ext_sleep.
#undef cfg_deep_sleep.
我会尝试检测对方间隔和连接间隔(也许有异常的东西)。
任何案例,非常谢谢你。
我也有同样的问题
嗨guiseppe,
您用于输出PWM脉冲的引脚是什么?一世n case that port 1_2 and port 1_3 is used, please note that those pins interfere with the 16MHz oscillator causing BLE link loss, etc, those pins should only be used for static or low speed signals (i.e. a push button) and not for high speed signals. If you route the PWM output to pin 1_0 for example you should be ok. For more info you can have a look at the AN-B-009.pdf Crystal oscillator PCB layout guidelines p.5.
谢谢mt_dialog.
我必须要更改PCB。我愿意在IC数据表中写入此信息。