添加读取赋码仪按键ke1 ,控制ledr,ledg 的功能

This commit is contained in:
ranchuan
2023-09-19 09:07:12 +08:00
parent e5abb86735
commit 1f469c4abe
8 changed files with 175 additions and 35 deletions

2
.gitignore vendored
View File

@@ -9,3 +9,5 @@ build_log.txt
__pycache__/
*.pid
*.pkt
*quest_info.txt
RTE/_app/RTE_Components.h

View File

@@ -1,22 +0,0 @@
/*
* Auto generated Run-Time-Environment Component Configuration File
* *** Do not modify ! ***
*
* Project: 'checker_m4'
* Target: 'app'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32mp157dxx_cm4.h"
#define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */
#define RTE_Compiler_IO_STDOUT_User /* Compiler I/O: STDOUT Breakpoint */
#endif /* RTE_COMPONENTS_H */

View File

@@ -8,3 +8,10 @@
如果发现程序不能运行检查RTE文件
2023.7.14
使用单线程方式执行命令
2023.7.21
屏蔽日志输出解决控制电机会引发id读取回复的bug
2023.8.2
读取按键时连续读取5次5次都为相同时才触发
添加build命令来获取编译时间
2023.8.17
添加读取赋码仪按键ke1 ,控制ledr,ledg 的功能

View File

@@ -331,7 +331,7 @@
<Group>
<GroupName>rtthread</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -567,7 +567,7 @@
<Group>
<GroupName>stm32lib</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -979,7 +979,7 @@
<Group>
<GroupName>interface</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1023,7 +1023,7 @@
<Group>
<GroupName>dev</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1043,7 +1043,7 @@
<Group>
<GroupName>soft</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1225,6 +1225,26 @@
</File>
</Group>
<Group>
<GroupName>readme</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>82</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\ReadMe.txt</PathWithFileName>
<FilenameWithoutPath>ReadMe.txt</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>

View File

@@ -80,9 +80,9 @@
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg1Name>upload checker_m4 ./Objects/checker_m4.axf</UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
@@ -336,7 +336,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>CORE_CM4,NO_ATOMIC_64_SUPPORT,USE_HAL_DRIVER,STM32MP157Dxx,METAL_INTERNAL,METAL_MAX_DEVICE_REGIONS=2,METAL_INTERNAL,VIRTIO_SLAVE_ONLY,__LOG_TRACE_IO_,RT_THREAD</Define>
<Define>CORE_CM4,NO_ATOMIC_64_SUPPORT,USE_HAL_DRIVER,STM32MP157Dxx,METAL_INTERNAL,METAL_MAX_DEVICE_REGIONS=2,METAL_INTERNAL,VIRTIO_SLAVE_ONLY,RT_THREAD</Define>
<Undefine></Undefine>
<IncludePath>.\source\core;.\source\main;.\source\rt_thread;.\source\rt_thread\include;.\source\stm32lib\STM32MP1xx_HAL_Driver\Inc;.\source\stm32lib\CMSIS\Include;.\source\OpenAMP\open-amp\lib\include;.\source\OpenAMP\libmetal\lib\include;.\source\OpenAMP\virtual_driver;.\source\soft;.\source\task;.\source\dev</IncludePath>
</VariousControls>
@@ -1207,6 +1207,16 @@
</File>
</Files>
</Group>
<Group>
<GroupName>readme</GroupName>
<Files>
<File>
<FileName>ReadMe.txt</FileName>
<FileType>5</FileType>
<FilePath>.\ReadMe.txt</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>

View File

@@ -11,6 +11,8 @@ typedef struct{
pwm_def *pwm;
int key_old;
int key;
int key1_old;
int key1;
int sen;
char str_buff[200];
}mymain_def;
@@ -42,6 +44,18 @@ void *mymain_init(void)
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
PERIPH_UNLOCK(GPIOF);
// ָʾ<D6B8><CABE>PF1(<28><>) PG15(<28><>)
init.Pin = GPIO_PIN_1;
PERIPH_LOCK(GPIOF);
HAL_GPIO_Init(GPIOF, &init);
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_1,GPIO_PIN_RESET);
PERIPH_UNLOCK(GPIOF);
init.Pin = GPIO_PIN_15;
PERIPH_LOCK(GPIOG);
HAL_GPIO_Init(GPIOG, &init);
HAL_GPIO_WritePin(GPIOG,GPIO_PIN_15,GPIO_PIN_RESET);
PERIPH_UNLOCK(GPIOG);
// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
init.Mode = GPIO_MODE_INPUT;
@@ -52,12 +66,18 @@ void *mymain_init(void)
PERIPH_UNLOCK(GPIOI);
// <20><><EFBFBD><EFBFBD>
// PG3 key2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
// PH7 key1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
init.Mode = GPIO_MODE_INPUT;
init.Pull = GPIO_NOPULL;
init.Pin = GPIO_PIN_3;
PERIPH_LOCK(GPIOG);
HAL_GPIO_Init(GPIOG, &init);
PERIPH_UNLOCK(GPIOG);
init.Pin = GPIO_PIN_7;
PERIPH_LOCK(GPIOH);
HAL_GPIO_Init(GPIOH, &init);
PERIPH_UNLOCK(GPIOH);
// <20><><EFBFBD><EFBFBD>
init.Mode = GPIO_MODE_INPUT;
@@ -91,6 +111,22 @@ void out_set(int index,int power)
send_str_to_a7(m->str_buff);
}
// <20><><EFBFBD><EFBFBD>ledr
void ledr_set(int power)
{
PERIPH_LOCK(GPIOG);
HAL_GPIO_WritePin(GPIOG,1<<15,power?GPIO_PIN_SET:GPIO_PIN_RESET);
PERIPH_UNLOCK(GPIOG);
send_str_to_a7("ledr seted");
}
// <20><><EFBFBD><EFBFBD>ledg
void ledg_set(int power)
{
PERIPH_LOCK(GPIOF);
HAL_GPIO_WritePin(GPIOF,1<<1,power?GPIO_PIN_SET:GPIO_PIN_RESET);
PERIPH_UNLOCK(GPIOF);
send_str_to_a7("ledg seted");
}
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -176,6 +212,44 @@ static int str_ainttoi(const char *s)
int read_key(void *mymain)
{
mymain_def *m=mymain;
int key=0,key2=0;
key=HAL_GPIO_ReadPin(GPIOG,1<<3);
if(key!=m->key_old)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>5<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>Ϊ<EFBFBD><EFBFBD><E0B7B4>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ƽ
for(int i=0;i<2;i++)
{
delay_ms(20);
key2=HAL_GPIO_ReadPin(GPIOG,1<<3);
if(key!=key2) return key2;
}
return key;
}
return m->key_old;
}
int read_key1(void *mymain)
{
mymain_def *m=mymain;
int key=0,key2=0;
key=HAL_GPIO_ReadPin(GPIOH,1<<7);
if(key!=m->key1_old)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>5<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>Ϊ<EFBFBD><EFBFBD><E0B7B4>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ƽ
for(int i=0;i<2;i++)
{
delay_ms(20);
key2=HAL_GPIO_ReadPin(GPIOH,1<<7);
if(key!=key2) return key2;
}
return key;
}
return m->key1_old;
}
@@ -183,7 +257,8 @@ static int str_ainttoi(const char *s)
void mymain_scan(void *mymain)
{
mymain_def *m=mymain;
m->key=HAL_GPIO_ReadPin(GPIOG,1<<3);
m->key=read_key(mymain);
m->key1=read_key1(mymain);
m->sen=HAL_GPIO_ReadPin(GPIOI,1<<6);
if(m->key_old!=m->key){
if(m->key==RESET)
@@ -195,6 +270,16 @@ void mymain_scan(void *mymain)
}
m->key_old=m->key;
}
if(m->key1_old!=m->key1){
if(m->key1==RESET)
{
send_str_to_a7("ke1 press");
}else
{
send_str_to_a7("ke1 up");
}
m->key1_old=m->key1;
}
}
@@ -211,6 +296,7 @@ int read_sw(void *mymain)
void mymain_loop(void *mymain,char *cmd_str)
{
mymain_def *m=mymain;
@@ -219,7 +305,6 @@ void mymain_loop(void *mymain,char *cmd_str)
// <20><><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>
int count=str_ainttoi(cmd_str+6);
if(count!=0){
send_str_to_a7(m->str_buff);
moter_run(0,count);
if(count>0){
send_str_to_a7("moter down");
@@ -252,6 +337,12 @@ void mymain_loop(void *mymain,char *cmd_str)
else
send_str_to_a7("key press");
}
else if(strncmp(cmd_str,"readke1",7)==0){
if(m->key1)
send_str_to_a7("ke1 up");
else
send_str_to_a7("ke1 press");
}
else if(strncmp(cmd_str,"readsen",7)==0){
// <20><><EFBFBD><EFBFBD>
if(m->sen)
@@ -268,6 +359,25 @@ void mymain_loop(void *mymain,char *cmd_str)
}
}
}
else if(strncmp(cmd_str,"ledr",4)==0){
if(strncmp(cmd_str+5,"on",2)==0){
ledr_set(1);
}else{
ledr_set(0);
}
}
else if(strncmp(cmd_str,"ledg",4)==0){
if(strncmp(cmd_str+5,"on",2)==0){
ledg_set(1);
}else{
ledg_set(0);
}
}
else if(strncmp(cmd_str,"build",5)==0){
send_str_to_a7("buildtime: " __DATE__ " " __TIME__);
}else{
send_str_to_a7("unknown cmd");
}
}

View File

@@ -87,3 +87,16 @@ void rt_hw_us_delay(rt_uint32_t us)
delay_us(us);
}
void delay_ms(uint32_t ms)
{
for(int i=0;i<ms;i++)
{
delay_us(1000);
}
}

View File

@@ -12,7 +12,7 @@ int delay_init(void);
void delay_us(uint32_t us);
void delay_ms(uint32_t ms);