搜索
bottom↓
回复: 52

吐槽nRF52832官方代码

  [复制链接]

出0入8汤圆

发表于 2018-4-24 10:43:11 | 显示全部楼层 |阅读模式
Nrf52832的代码多是重复自己的。
看52832的代码就像剥开女人的衣服一样,一件又一件,剥完都已经挂了

  1. APP_UART_FIFO_INIT(&comm_params,
  2.                          UART_RX_BUF_SIZE,
  3.                          UART_TX_BUF_SIZE,
  4.                          uart_error_handle,
  5.                          APP_IRQ_PRIORITY_LOWEST,
  6.                          err_code);
复制代码

里面又调用
  1. ERR_CODE = app_uart_init(P_COMM_PARAMS, &buffers, EVT_HANDLER, IRQ_PRIO);
复制代码

里面又调用
  1. err_code = nrf_drv_uart_init(&app_uart_inst, &config, uart_event_handler);
复制代码

里面又调用
  1. if (NRF_DRV_UART_USE_UARTE)
  2.     {
  3.         result = nrfx_uarte_init(&p_instance->uarte,
  4.                                  (nrfx_uarte_config_t const *)&config,
  5.                                  event_handler ? uarte_evt_handler : NULL);
  6.     }
  7.     else if (NRF_DRV_UART_USE_UART)
  8.     {
  9.         result = nrfx_uart_init(&p_instance->uart,
  10.                                 (nrfx_uart_config_t const *)&config,
  11.                                 event_handler ? uart_evt_handler : NULL);
  12.     }
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2018-4-24 10:46:57 | 显示全部楼层
代码写多了就喜欢这样,要不怎么显示自己水平高?

出0入0汤圆

发表于 2018-4-24 10:51:33 | 显示全部楼层
可能我水平低,Nordic的代码是我看到过封装很好的代码了。

出0入0汤圆

发表于 2018-4-24 10:52:18 | 显示全部楼层
我反而觉得nrf的sdk不错,简单好用,如里你用过da14580开发过程序,,就是绝对nrf的工程师绝对牛B.

出0入0汤圆

发表于 2018-4-24 10:54:30 | 显示全部楼层
TI 代码就恶心的不行。
dialog 都说难度大的无法想象。

出0入8汤圆

 楼主| 发表于 2018-4-24 11:00:12 | 显示全部楼层
TI、dialog没有看过
也是才开始学蓝牙,看了52832代码太啰嗦了,要理解程序流程太绕了。
吐槽一下

出0入8汤圆

发表于 2018-4-24 11:02:30 | 显示全部楼层
lindabell 发表于 2018-4-24 11:00
TI、dialog没有看过
也是才开始学蓝牙,看了52832代码太啰嗦了,要理解程序流程太绕了。
吐槽一下

具体的代码,我没接触过,我就瞎扯淡一下:
封装的目的就是尽可能的隐藏掉实现细节,方便上层应用开发。
你现在的目标是要看细节,自然会繁琐点。

出0入0汤圆

发表于 2018-4-24 11:08:54 | 显示全部楼层
玩过52832,就是因为代码看着头晕就放弃了,现在扔着吃灰

出0入0汤圆

发表于 2018-4-24 11:13:04 | 显示全部楼层
习惯就好了,因为蓝牙协议栈比较麻烦,他整个系统是事件驱动的,你要是学学更高级的语言就不会吐槽这么绕了

出0入0汤圆

发表于 2018-4-24 11:24:08 | 显示全部楼层
我觉得nrf的蓝牙代码还是挺好理解的,蓝牙的代码确实是有点复杂,刚开始的时候看得比较吃力。

出190入0汤圆

发表于 2018-4-24 11:26:06 来自手机 | 显示全部楼层
个人理解:主要是剥离平台相关代码,方便在各个平台移植

出0入0汤圆

发表于 2018-4-24 17:41:01 | 显示全部楼层
NRF 的代码质量相当高,只是可能像你说的封装的次数太多了,但是你是做应用层开发的,蓝牙协议本来就很复杂,为了应用接口简单多次封装肯定少不了的。

出0入0汤圆

发表于 2018-4-24 19:26:46 来自手机 | 显示全部楼层
nordic的代码也吐槽,那其他家ble soc更惨不忍睹了。

出30入54汤圆

发表于 2018-4-24 20:27:22 | 显示全部楼层
代码的层次划分还是做得挺好的,楼主你还是代码量太少了,看多了就习惯了。

出0入0汤圆

发表于 2018-4-24 20:50:53 | 显示全部楼层
Nordic的代码很不错了,俺用着挺舒服的

出0入0汤圆

发表于 2018-4-24 21:31:27 | 显示全部楼层
不喜欢nordic的代码,封装了2层,多封装了一次,只要一次就够了。

出0入4汤圆

发表于 2018-4-24 21:32:22 | 显示全部楼层
封装得太多~~~~不注重效率的地方可以这么玩

出0入0汤圆

发表于 2018-4-24 21:35:25 | 显示全部楼层
请问现在比较优秀的教程是哪家的?有没有分享一下的呢?嘻嘻

出0入0汤圆

发表于 2018-4-24 23:19:46 来自手机 | 显示全部楼层
你可知道nordic的SDK是要兼容他家全系列MCU,不论是M0还是M4,这点没有多少家做得很好吧

出0入0汤圆

发表于 2018-4-24 23:38:02 | 显示全部楼层
封装好了直接用就行了,还要看细节干啥。。。
我用 cypress 的BLE就没有看细节的冲动。直接datasheet都扔掉。

出0入0汤圆

发表于 2018-4-25 08:59:04 | 显示全部楼层
app layer
service layer
driver layer

清晰

出0入0汤圆

发表于 2018-4-25 09:17:37 | 显示全部楼层
waterghost 发表于 2018-4-24 10:54
TI 代码就恶心的不行。
dialog 都说难度大的无法想象。

同意!!!
我非常不喜欢TI的软件,杜绝使用。
硬件要用的时候会选,软件真的恶心。

出0入0汤圆

发表于 2018-4-25 09:34:21 | 显示全部楼层
最近正在看silabs的蓝牙BLE代码,同样也是封装很多层。一直写面向过程的代码,这种面向对象程序看起来真绕。

出0入0汤圆

发表于 2018-4-26 10:46:11 | 显示全部楼层
Nordic SDK已经很好,封装的不错,主要是为人兼容,不想用你就自己操作寄存器

出0入0汤圆

发表于 2018-4-26 10:51:51 | 显示全部楼层
呵呵,层层封装,这样整的不在乎存储空间么?

出0入25汤圆

发表于 2018-4-26 10:56:01 | 显示全部楼层

MT7687的代码也这样,,一层套一层,,而且比这个还烂,函数名字都没啥规律

出0入0汤圆

发表于 2018-4-26 17:23:07 | 显示全部楼层
用过51822;表示多看就看懂了!

出0入0汤圆

发表于 2018-4-27 16:59:31 | 显示全部楼层
正准备入坑52832

出0入0汤圆

发表于 2018-4-27 19:00:57 来自手机 | 显示全部楼层
这算好的啦

出0入0汤圆

发表于 2018-7-9 17:08:22 | 显示全部楼层
nordic最坑的不是一层层封装,而是从SDK10.0到SDK15.0,你会感觉简直一代和一代都不一样

出0入0汤圆

发表于 2018-7-9 18:32:45 | 显示全部楼层
52832封装好就好调用,看sdk好过f12。

出0入0汤圆

发表于 2018-7-9 21:08:57 | 显示全部楼层
好多官方驱动代码都是这个样子,写的简直就是个垃圾!你都无从下手,根本不讲究效率,不讲究风格。只能用来做演示用用,唬人而已!

出615入1076汤圆

发表于 2018-7-9 21:32:29 | 显示全部楼层
看這麼多朋友吐槽 ti,我就放心了。。。

出0入53汤圆

发表于 2018-7-9 21:58:17 | 显示全部楼层
也准备入nRF52832的坑了,lz研究的怎么样了?

出0入0汤圆

发表于 2018-7-10 13:20:27 | 显示全部楼层
我见过一个宏被套了十几次。想看下宏最终是什么,打开7,8个H文件。
好像老外都喜欢这么搞,不知道是不是为了防盗。

出0入0汤圆

发表于 2018-7-10 18:09:03 | 显示全部楼层
我也看过那个代码, 确实套了好多层

出0入4汤圆

发表于 2018-7-11 10:15:57 | 显示全部楼层
这还好,一层一层而已,他自己的私有协议栈直接那函数指针实现状态机,看的才晕

出0入0汤圆

发表于 2018-7-11 20:48:23 来自手机 | 显示全部楼层
SDK好用得很呀,封装多层是为了通用好维护以及对用户友好

出0入8汤圆

发表于 2018-7-11 22:36:51 | 显示全部楼层
我觉得好的软件都应该封装成黑盒子差不多的代码形式, 就是在一个地方写输入, 一个地方写结果, 一两个地方处理对应的中断就这样就可以了. 过度封装会大大降低可读性, 因为函数名称太多不容易记住.

出0入0汤圆

发表于 2018-7-12 09:24:34 来自手机 | 显示全部楼层
直接用mbed啊

出100入101汤圆

发表于 2018-7-13 10:00:16 | 显示全部楼层
封装再封装

出95入100汤圆

发表于 2018-7-14 11:13:52 | 显示全部楼层
主要是事件驱动的原因

出0入0汤圆

发表于 2018-7-17 11:55:41 | 显示全部楼层
其实nordic的SDK代码已经是所有类似厂商里面相当好的了。读这类代码不建议纵向阅读方法(从顶层API一直追溯到最底层),而是建议分层级阅读。

出0入0汤圆

发表于 2018-7-17 13:36:05 | 显示全部楼层
这种C代码不是用来直接看的,要结合别人的说明,分层级阅读
不然你看tcp/ip之类的东西会疯的

出0入0汤圆

发表于 2018-7-18 10:22:32 | 显示全部楼层
同感,我也用这玩意急急忙忙开发过一次,看得云里雾里,后来发现蓝牙本来就不简单,什么UUID 特征值 信道 MTU 低功耗和轮询时间。。。。。

出0入20汤圆

发表于 2018-12-6 16:59:23 | 显示全部楼层
最近也在学52832,代码确实冗余,简单的外设我已经选择用寄存器了,复杂的蓝牙这种极其复杂,还是勉强用用API吧,没弄懂代码流程,心里没底

出0入0汤圆

发表于 2018-12-6 17:33:35 | 显示全部楼层
本帖最后由 hpu07 于 2018-12-6 17:36 编辑

建议用用dialog的14580,之后你就会很庆幸用了52832
如果你觉得dialog的代码最烂,那你又错了,建议你用用新唐arm9的None OS或者isd系列SDK
代码没有最烂,只有更烂

出0入0汤圆

发表于 2018-12-10 16:53:34 | 显示全部楼层
哈哈,突然想到一句话,没有什么问题是不能通过向上再封装一层来解决的。o(* ̄▽ ̄*)ブ

出90入0汤圆

发表于 2018-12-10 18:10:07 来自手机 | 显示全部楼层
标准电工思想,老想剥别人衣服,研究。

出0入0汤圆

发表于 2018-12-11 16:11:57 | 显示全部楼层
看着麻烦 用着方便;

出0入0汤圆

发表于 2019-5-31 09:50:30 | 显示全部楼层
hpu07 发表于 2018-12-6 17:33
建议用用dialog的14580,之后你就会很庆幸用了52832
如果你觉得dialog的代码最烂,那你又错了,建议你用用新唐 ...

哈哈哈哈

出0入0汤圆

发表于 2019-6-3 10:09:30 | 显示全部楼层
Nordic的代码是我看到过封装很好的代码

出0入0汤圆

发表于 2020-3-24 16:28:15 | 显示全部楼层
NORDIC的代码质量可以说相当高了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 08:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表