前言:从大学到现在的工作,接触单片机也有几年了。一路跌跌撞撞总算是靠这小小的片子,养活了自己。做项目也没有什么突出的本事,也是换口饭吃的水平,有什么需求就用什么样的片子。这次看到面包板社区有这样一个活动,板子是国产的,板子还有蓝牙的功能,不错的板子,挺有意思,参加活动也算是工作的一种调剂。
1、开箱硬件
板子的结构很紧凑、直观,两个MicroUSB的接口,一个是仿真,一个是USB。看了社区其他的工程师的测评文章才知道,旁边的四针插座是uart接口。在单片机的调试过程中,串口的日志打印还是很重要的。但是,现在也有了新方案,有些单片机可以通过使能RTT的打印功能,直接使用仿真器的SWDIO、SWCLK两线通信(RTT功能简介 https://segger.com/jlink-real-time-terminal.html)。
下面上图看看咱们的开发板,因为挨着窗台拍的,有点反白但不影响板子的气质。
两边各自放置了两排插针,但是边上却没有标出引脚的分配,这点不太方便。要操作相关的外设,还是需要对照原理图和框图来弄。根据产品资料能够知道,这款开发板的主控IC为:MM32W373PSB。那么从 《Insight 系列 MM32 eMiniBoard 开发板用户手册》能够知道板子对应的原理图资料为:eMiniBoard MB-021 基于 Cortex-M3 蓝牙开发板,支持 MM32W373 MCU。
原理图:
2020-6-3 18:53 上传
点击文件名下载附件
2、开发环境搭建
1、我一般使用MDK环境居多,所以也就使用这个工程了。关于仿真器的驱动、MDK的驱动,可以参考灵动提供的一份问题综合解决方案,里面总结了各种解决方法。这里有个小建议:这部分其实可以在快速入门指导手册里面给出一个链接,以便让新接触灵动单片机的同学更方便地入门。
参考手册:
2020-6-3 19:00 上传
点击文件名下载附件
有这份文档,相关的驱动安装可以少走很多弯路。
附件:
2020-6-4 08:51 上传
点击文件名下载附件
2020-6-4 08:51 上传
点击文件名下载附件
2、我的MDK和PC已经能够识别我的板子,接下来是该编译程序、下载了。安装pack,然后在工程文件打开MDK的工程 ,这是通用的步骤,中间也没遇到什么挫折。虽然看群里面的消息知道,这个W系列的单片机和L系列的单片机内核一样。但我还是优先采用了github上的MDK工程,毕竟这里已经开启了蓝牙功能。
pack:
2020-6-3 19:05 上传
点击文件名下载附件
MDK工程:
2020-6-3 19:05 上传
点击文件名下载附件
编译通过就选择编译器,然后下载:
下面是相关的设置,以防以后自己忘记:
程序下载后的结果能够搜到蓝牙的信号,我看了下main()的代码,好像关于蓝牙功能就两条指令 SetBleIntRunningMode();
radio_initBle(TXPWR_3DBM, &ble_mac_addr);。
int main(void){ unsigned long temp = 0x800000; while (temp--); SPIM_Init(0x06); IRQ_RF(); SYSTick_Configuration(); uart_initwBaudRate(); SetBleIntRunningMode(); radio_initBle(TXPWR_3DBM, &ble_mac_addr); IWDG_Init(4, 625); value_t[0] = 0xc0; value_t[1] = *(u8 *)0x1FFFF820; //Read FT value(FT value:The RF module is calibrated at the factory to prevent frequency deviation. The user can call the FT value in the program) ble_run_interrupt_start(80);//320*0.625=200 ms while (1) { } }
复制代码int main(void){ // Initialize. uart_init(); log_init(); timers_init(); power_management_init(); ble_stack_init(); gap_params_init(); gatt_init(); services_init(); advertising_init(); conn_params_init(); // Start execution. printf("\r\nUART started.\r\n"); NRF_LOG_INFO("Debug logging for UART over RTT started."); advertising_start(); application_timers_start(); // Enter main loop. for (;;) { if(flag) { flag = 0; if(m_conn_handle != BLE_CONN_HANDLE_INVALID) { ble_nus_data_send(&m_nus,sendBuf,&len,m_conn_handle); } } else { idle_state_handle(); } } }
复制代码db_discovery_init();
power_management_init();
ble_stack_init();
gatt_init();advertising_start();
都是和蓝牙功能相关的代码,分类很清晰。在移植的时候一般能够照葫芦画瓢,也不需要懂其中的协议。对于MM32W373 MCU还不太了解,以后应该也是一样的好用吧。
结语:
兄弟们,后会有期,江湖再见。
继续阅读本篇相关更多标签
全部回复 0
暂无评论,快来抢沙发吧
评测文章
热帖
大家都在看的技术资料
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐 /3
- 返回顶部
工具栏