51楼
你是来看我烧片子的吗?好吧!我告诉你,刚才又挂了一个max3232。第四个了!第四片max3232在发送三千多个数据之后,又挂了!
52楼
使用库函数中的例子驱动液晶中。驱动不起来。
正在逐步排查。。。
先检查FSMC是否配置正确。
循环向LCD地址写入0xAAAA 和0X5555,示波器测量引脚,发现这样的波形,很不好看:
之后延时一下,看见的是这样的波形:
说明FSMC有输出了,可以用了。。呵呵
下边之剩下LCD的初始化序列了。
不知道为什么,读不出来SSD1289的RAM,也写不进去数据。问了问卖我LCD的老板,给我的例子好像还有错。。。。。晕呢
正在逐步排查。。。
先检查FSMC是否配置正确。
循环向LCD地址写入0xAAAA 和0X5555,示波器测量引脚,发现这样的波形,很不好看:
之后延时一下,看见的是这样的波形:
说明FSMC有输出了,可以用了。。呵呵
下边之剩下LCD的初始化序列了。
不知道为什么,读不出来SSD1289的RAM,也写不进去数据。问了问卖我LCD的老板,给我的例子好像还有错。。。。。晕呢
54楼
本帖两个内容
1、今天又买了一堆东西,MAX3232买的六块一片的进口的。
2、晚上实验按键。GPIO按键输入 和中断输入实验成功。
使用ST库的模板,用着相当的舒服。
工程文件比较大,先列出来代码。下边是代码:
//按键SW1 初始化为GPIO输入。
STM_EVAL_PBInit(BUTTON_KEY,Mode_GPIO);
//初始化按键SW2为中断输入,功能为熄灭所有LED
STM_EVAL_PBInit(BUTTON_TAMPER,Mode_EXTI);
//按键输入,LED灯反转
while(1)
{
if (STM_EVAL_PBGetState(BUTTON_KEY) == 0x00)
{
//去抖动
delay(10);
if (STM_EVAL_PBGetState(BUTTON_KEY) == 0x00)
{
STM_EVAL_LEDToggle(LED1);
STM_EVAL_LEDToggle(LED2);
STM_EVAL_LEDToggle(LED3);
STM_EVAL_LEDToggle(LED4);
}
}
}
按键SW1的中断处理函数应该在stm32f10x_it.c中定义,因为SW1是13号脚,所以定义了外部中断15~10服务程序void EXTI15_10_IRQHandler(void),代码如下:
//外部中断15~10服务程序
void EXTI15_10_IRQHandler(void)
{
//清除中断标志
EXTI_ClearITPendingBit(TAMPER_BUTTON_PIN);
//熄灭LED
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED4);
printf("I am in key interrupt..\n\r");
//while(1);
}
其中函数STM_EVAL_PBInit()、STM_EVAL_LEDToggle和函数STM_EVAL_PBGetState()是示例工程里边提供的。这里只要定义好相关按键引脚即可使用,引脚定义改改例子工程里边的定义就行了。。。。我比较懒,,。
按键引脚IO定义如下:
/**
* @brief Wakeup push-button
*/
#define WAKEUP_BUTTON_PIN GPIO_Pin_0
#define WAKEUP_BUTTON_GPIO_PORT GPIOA
#define WAKEUP_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOA
#define WAKEUP_BUTTON_EXTI_LINE EXTI_Line0
#define WAKEUP_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOA
#define WAKEUP_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource0
#define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn
/**
* @brief Tamper push-button 板子上的SW2
*/
#define TAMPER_BUTTON_PIN GPIO_Pin_13
#define TAMPER_BUTTON_GPIO_PORT GPIOC
#define TAMPER_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOC
#define TAMPER_BUTTON_EXTI_LINE EXTI_Line13
#define TAMPER_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOC
#define TAMPER_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource13
#define TAMPER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
/**
* @brief Key push-button 板子上的SW1
*/
#define KEY_BUTTON_PIN GPIO_Pin_11
#define KEY_BUTTON_GPIO_PORT GPIOF
#define KEY_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOF
#define KEY_BUTTON_EXTI_LINE EXTI_Line11
#define KEY_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOF
#define KEY_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource11
#define KEY_BUTTON_EXTI_IRQn EXTI15_10_IRQn
懒人代码 仅供参考 不建议把玩
1、今天又买了一堆东西,MAX3232买的六块一片的进口的。
2、晚上实验按键。GPIO按键输入 和中断输入实验成功。
使用ST库的模板,用着相当的舒服。
工程文件比较大,先列出来代码。下边是代码:
//按键SW1 初始化为GPIO输入。
STM_EVAL_PBInit(BUTTON_KEY,Mode_GPIO);
//初始化按键SW2为中断输入,功能为熄灭所有LED
STM_EVAL_PBInit(BUTTON_TAMPER,Mode_EXTI);
//按键输入,LED灯反转
while(1)
{
if (STM_EVAL_PBGetState(BUTTON_KEY) == 0x00)
{
//去抖动
delay(10);
if (STM_EVAL_PBGetState(BUTTON_KEY) == 0x00)
{
STM_EVAL_LEDToggle(LED1);
STM_EVAL_LEDToggle(LED2);
STM_EVAL_LEDToggle(LED3);
STM_EVAL_LEDToggle(LED4);
}
}
}
按键SW1的中断处理函数应该在stm32f10x_it.c中定义,因为SW1是13号脚,所以定义了外部中断15~10服务程序void EXTI15_10_IRQHandler(void),代码如下:
//外部中断15~10服务程序
void EXTI15_10_IRQHandler(void)
{
//清除中断标志
EXTI_ClearITPendingBit(TAMPER_BUTTON_PIN);
//熄灭LED
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED4);
printf("I am in key interrupt..\n\r");
//while(1);
}
其中函数STM_EVAL_PBInit()、STM_EVAL_LEDToggle和函数STM_EVAL_PBGetState()是示例工程里边提供的。这里只要定义好相关按键引脚即可使用,引脚定义改改例子工程里边的定义就行了。。。。我比较懒,,。
按键引脚IO定义如下:
/**
* @brief Wakeup push-button
*/
#define WAKEUP_BUTTON_PIN GPIO_Pin_0
#define WAKEUP_BUTTON_GPIO_PORT GPIOA
#define WAKEUP_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOA
#define WAKEUP_BUTTON_EXTI_LINE EXTI_Line0
#define WAKEUP_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOA
#define WAKEUP_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource0
#define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn
/**
* @brief Tamper push-button 板子上的SW2
*/
#define TAMPER_BUTTON_PIN GPIO_Pin_13
#define TAMPER_BUTTON_GPIO_PORT GPIOC
#define TAMPER_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOC
#define TAMPER_BUTTON_EXTI_LINE EXTI_Line13
#define TAMPER_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOC
#define TAMPER_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource13
#define TAMPER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
/**
* @brief Key push-button 板子上的SW1
*/
#define KEY_BUTTON_PIN GPIO_Pin_11
#define KEY_BUTTON_GPIO_PORT GPIOF
#define KEY_BUTTON_GPIO_CLK RCC_APB2Periph_GPIOF
#define KEY_BUTTON_EXTI_LINE EXTI_Line11
#define KEY_BUTTON_EXTI_PORT_SOURCE GPIO_PortSourceGPIOF
#define KEY_BUTTON_EXTI_PIN_SOURCE GPIO_PinSource11
#define KEY_BUTTON_EXTI_IRQn EXTI15_10_IRQn
懒人代码 仅供参考 不建议把玩
57楼
今天休息,调板子发现发现LCD的BUG。
问题及解决方法在这里http://forum.eepw.com.cn/thread/210374/1
因为LCD一组没有驱动起来,为了排除LCD的问题。
于是用别人的板子试了下,使用GPIO驱动。发现LCD能点亮。
于是在群里边讨论,emusic告诉我板子LCD部分有BUG,原理图和PCB不符。
于是拿三用表测,果然十个BUG。解决之后,开始驱动LCD。
弄了一下午,画出来圆和矩形。
下面是效果图:
问题及解决方法在这里http://forum.eepw.com.cn/thread/210374/1
因为LCD一组没有驱动起来,为了排除LCD的问题。
于是用别人的板子试了下,使用GPIO驱动。发现LCD能点亮。
于是在群里边讨论,emusic告诉我板子LCD部分有BUG,原理图和PCB不符。
于是拿三用表测,果然十个BUG。解决之后,开始驱动LCD。
弄了一下午,画出来圆和矩形。
下面是效果图:
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |