如果是8位并口,你可以把8位数据线安排在某口的低8位,4个控制线安排在同一个口的高8位上即可,方便编程:
void LCD12684_Wdat(u8 dat)
{
while(LCD12864_busy()); //忙检测
LCD_RS(1);
LCD_RW(0);
LCD_EN(0);
delay_ms(2);
GPIOF-ODR=((GPIOF-ODR 0xfff3)|((dat 0x03) 2));
//将数据的最后两位左移2位后赋给GPIOF的三四位
GPIOD-ODR=((GPIOD-ODR 0xff03)|((dat 0xfc) 8));
//将数据的前6位左移8位后赋给GPIOD的11到16位
delay_ms(2);
LCD_EN(1);
delay_ms(2);
LCD_EN(0);
}
这一堆电容很重要,保证单片机以及外围器件运行的可靠性。
以STM32F207VE单片机接触摸传感器模块为例,输出信号接到PA0口上。如果电源引脚完全没有电容,那么在单片机每次复位后,PA0上会自动产生一个异常的高电平,要等上将近10秒才会回到低电平,然后触摸传感器才能正常工作,每次单片机复位(无论是软件复位还是按下复位键复位)均是如此。接上电容器后问题完全消失。
还有,不接电容器,串口下载以及SWD/JTAG下载有时也会受影响。特别是没有外接25MHz的HSE晶振的情况下,Flash Loader Demo经常连不上芯片。
按键检测的话可以连接到任意的GPIO上面,只要初始化配置为输入,程序中采集该GPIO的电平状态来判断按键的状态即可。另外也可以使用GPIO的外部中断功能来判断按键状态。蜂鸣器把GPIO配置为输出就能控制了。
stm32周边电路包括:唤醒电路、复位电路、启动配置、高速晶振电路、A/D参考电路、后备电源、AD输入PC滤波、低速晶振电路。
晶体振荡电路采用了高速晶振电路、低速晶振电路的电路设计。
不知你打算用什么GUI,ucGUI还是自编GUI。如是ucGUI,可参考一下“奋斗版”的代码,如是自编的GUI可参考“正点原子”的代码。
本文标签:阿波罗stm32触摸屏电路