赞
踩
NRF52832开发之串口通信问题小结
1、串口通信硬件设计注意事项
建议在串口收发线接上拉电阻,或者软件配置内部上拉,尤其是接收端作为输入端,为防止输入信号受干扰,导致电平不确定。
另外串口通信数据在每一个字节传送之前,先要通过一个低电平起始位实现握手,也是建议上拉的原因。
NRF52832中配置内部上拉的示例:
在“nrf_drv_uart.c”文件中:【加粗的地方为已修改过的代码】
__STATIC_INLINE void apply_config(nrf_drv_uart_t const * p_instance, nrf_drv_uart_config_t const * p_config)
{
if (p_config->pseltxd != NRF_UART_PSEL_DISCONNECTED)
{
nrf_gpio_pin_set(p_config->pseltxd);
nrf_gpio_cfg_output(p_config->pseltxd);
}
if (p_config->pselrxd != NRF_UART_PSEL_DISCONNECTED)
{
nrf_gpio_cfg_input(p_config->pselrxd, NRF_GPIO_PIN_PULLUP);
}
2、串口通信中,如果报错【ERROR 4 [NRF_ERROR_NO_MEM]】:
除了网上提到的配置缓存大小的方法外,需检查发送的数据内容是否有异常,数据长度和实际内容长度是否一致等(本人在打包消息的时候,粗心大意,导致缓存异常,原本发送10个字节的数据,存储区显示上百字节,于是报了以上错误,排查很久,最终找到问题)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。