(按键控制流水灯流速+6Runmode)奋斗STM32 ARM DIY进程帖
PCB板收到,观察了一下,PCB板没有问题,下午可以焊了。先冒个泡先。。。 经过了5个小时奋斗,终于焊好了。。明天传相片。。58元值得得到这样的开发板值得。
10楼 PWM控制LED
12楼 超声波测距+串口显示
、****************************、
焊玩的时候,我有USB转串口不能下载,母头已经把5脚接地了,但是我用JTAG可以下载,另外也可以用2303下载,以后就经常用2303,这样可以解决供电,只需要一个USB插在电脑,很方便,虽然速度慢,不稳定,但是对于我们学习已经足够了,接下来就打算移植正点原子的程序,我也会一步一步分享给大家,目前跑马灯,串口已经移植了。。全部操作寄存器的。。呵呵
焊完了,还有那么多元器件,上星期买的。。呵呵
背面
已经在调试中。。
关键词: 按键 控制 流水 流速 +6Runmode 奋斗
#include "stm32f10x.h"
#include "eval.h"
#include "SysTickDelay.h"
#include <stdio.h>
/* Private typedef -----------------------------------------------------------*/
typedef enum { FAILED = 0, PASSED = !FAILED} TestStatus;
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
#define countof(a) (sizeof(a) / sizeof(*(a)))
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void GPIO_Configuration(void)
{
STM_EVAL_LEDInit(LED1);
STM_EVAL_LEDInit(LED2);
STM_EVAL_LEDInit(LED3);
STM_EVAL_LEDInit(LED4);
}
//系统中断管理
void NVIC_Configuration(void)
{
//NVIC_InitTypeDef NVIC_InitStructure;
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //设置优先级分组:先占优先级0位,从优先级4位
//设置向量表的位置和偏移
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //向量表位于RAM
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); //向量表位于FLASH
#endif
}
//配置系统时钟,使能各外设时钟
void RCC_Configuration(void)
{
SystemInit();
}
//配置所有外设
void Init_All_Periph(void)
{
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
}
u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
if(key_up&&((STM_EVAL_PBGetState(USER_BUTTOM) == 0x00)||(STM_EVAL_PBGetState(Anti_Tamper) == 0x00)||(STM_EVAL_PBGetState(WAKE_UP) == 0x01)))
{
delay_ms(10);//去抖动
key_up=0;
if (STM_EVAL_PBGetState(USER_BUTTOM) == 0x00) //按键按下:低电平有效
{
return 1;
}
if (STM_EVAL_PBGetState(Anti_Tamper) == 0x00) //按键按下:低电平有效
{
return 2;
}
if (STM_EVAL_PBGetState(WAKE_UP) == 0x01) //按键按下:高电平有效
{
return 3;
}
}
else if((STM_EVAL_PBGetState(USER_BUTTOM) == 0x01)&&(STM_EVAL_PBGetState(Anti_Tamper) == 0x01)&&(STM_EVAL_PBGetState(WAKE_UP) == 0x00)) key_up=1;
return 0;// 无按键按下
}
int main(void)
{
u8 Key_Vlaue;
Init_All_Periph();
SysTick_Initaize();
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED4);
while(1)
{
// GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //SWJ完全失能(JTAG+SW-DP)
STM_EVAL_PBInit(USER_BUTTOM, Mode_GPIO); //设置按键GPIO属性
STM_EVAL_PBInit(Anti_Tamper, Mode_GPIO); //设置按键GPIO属性
STM_EVAL_PBInit(WAKE_UP, Mode_GPIO); //设置按键GPIO属性
Key_Vlaue=KEY_Scan();//得到键值
if(Key_Vlaue)
{
switch(Key_Vlaue)
{
case 1:
STM_EVAL_LEDToggle(LED1);
break;
case 2:
STM_EVAL_LEDToggle(LED2);
break;
case 3:
STM_EVAL_LEDToggle(LED1);
STM_EVAL_LEDToggle(LED2);
STM_EVAL_LEDToggle(LED3);
STM_EVAL_LEDToggle(LED4);
break;
}
}
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
按键控制LED
请教个问题:
在焊接的过程中发现几个问题:
BEAD 、BEAD1 和 L2 要焊接什么呢?
还有 为什么我的 R23 R24 R25 R26 R27 两端之间电阻为20K呢?难道是STM32单片机内部自带上拉电阻 还是说我的STM32的片子挂掉了呢?
还有vcc和reset#之间 哪怕在我没有焊接上啦电阻的时候,也是有20k左右的电阻,又是为什么呢?
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】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分 |