本帖最后由 测量无处不在 于 2019-6-14 09:17 编辑

很高兴能在面包板社区申请到UFUN的开发板,但因为近期时间紧张,所以今天才调通整个板子。好在Keil的软件界面比较类似,利用前期的例程+UFUN开发板的各种硬件资源,开始了调试开发。
总体方案:
利用触摸按键,来选择各种声音,使蜂鸣器发出不同类型的声音。
设计模块:
1.  触摸识别部分:采用程序轮询方式(为了方便程序设计,没有采用中断),检测按键是否按下,高电平时,设置UpFlag=1(或DownFlag);主循环结束时清零;
2.  程序选择部分:设置全局变量SongSwitch,初值设定,根据触摸识别,进行累加SongSwitch++,根据总的歌曲数量,采用求余SongSwitch%SongTotal方法来选择声音类型。

查看板子原理图,需要用到引脚及功能如下列举:

·      触摸按键:KEY0 (向右)-PC5; KEY1  向上-PC4; KEY2(向左) -PB3; KEY2(向下)-PB4。配置为浮空输入模式,查询到高电平则有按键按下。(也可以开启外部中断,边沿检测更为准确)








对于触摸按键的检测,使用了专用芯片TTP224,专门的4按键检测芯片,这样就减少了软件的工作量,对于抖动检测、灵敏度设置等都可以通过硬件来调整。


函数主程序如下:
1.    intmain(void)
2.    {
3.       /* MCU Configuration Init */
4.       /* Reset of all peripherals, Initializes the Flash interface and theSystick. */
5.       HAL_Init();
6.       /* Configure the system clock */
7.       SystemClock_Config();
8.       /* Initialize all configured peripherals */
9.       MX_GPIO_Init();
10.    MX_TIM1_Init();
11.    MX_USART1_UART_Init();
12.    MX_TIM2_Init();
13.    RS232_Init();
14.    BEE_Init();
15.   /*USER CODE BEGIN WHILE */
16.    while (1)
17.    {
18.        // key up detect
19.      KeyUp();
20.      // key down detect
21.      KeyDown();
22.      // Bee Song Select
23.      BeeSongSelect();
24.    }
25. }
26.  















使用感受:
1.  UFUN板子功能多,包括:触摸检测、ADC、RS232、存储卡等,具体可以看说明;
2.  当然每一类功能数量有限,但对于初学者可以熟悉各类功能开发,从不了解到知道这个功能,是质变的;
3.  后续增加各种功能的数量,只是量变了,如果不是太多数量,很容易扩展到非常强大的功能;
4.  当然数量多到一定程度,要注意质变了,系统不一定支持这么多了;
5.  这块板子精通了,平时的各种应用场合一般都可以对付,当然对于特殊需求,还需要额外考虑。
后续,
1.  计划扩展串口通讯功能,这样可以外接显示设备,显示板子工作状态;
2.  调试ADC采集功能,采样精度和频率测试。

最后,感谢面包板社区提供交流的平台、感谢张近东先生提供开发板!