Browse Source

update

master
Yuenold 3 years ago
parent
commit
cb457c69bd
  1. 2
      APP/main.c
  2. 80
      APP/uart0.c
  3. 2
      Library/Source/lib_printf.c
  4. 1
      Library/Source/lib_uart.c
  5. 51
      README.md
  6. BIN
      doc/markdown.assets/软件出错记录.assets/image-20220303182554789.png
  7. BIN
      doc/markdown.assets/软件出错记录.assets/image-20220303183906328.png
  8. 27
      doc/软件出错记录.md
  9. BIN
      doc/项目需求V3.0.docx
  10. 1484
      project_ozone/Listings/project_o.map
  11. 173
      project_ozone/project_o.uvgui.admin
  12. 68
      project_ozone/project_o.uvopt
  13. 2
      project_ozone/project_o.uvproj

2
APP/main.c

@ -312,6 +312,8 @@ int main(void) {
// //
zkey_init(&key_module); zkey_init(&key_module);
// while (1) {
// }
// //
starting_up(); starting_up();

80
APP/uart0.c

@ -26,36 +26,100 @@ void uart0_init(void) {
UART_InitStruType UART_InitStruct; UART_InitStruType UART_InitStruct;
UART_InitStruct.UART_BaudRate = 115200; //
UART_InitStruct.UART_ClockSet = UART_Clock_1; //
UART_InitStruct.UART_RxMode = UART_DataMode_8; // 8
UART_InitStruct.UART_BaudRate = 115200; //
UART_InitStruct.UART_ClockSet = UART_Clock_1; //
UART_InitStruct.UART_RxMode = UART_DataMode_8; // 8
// //
UART_InitStruct.UART_RxPolar = UART_Polar_Normal; UART_InitStruct.UART_RxPolar = UART_Polar_Normal;
UART_InitStruct.UART_StopBits = UART_StopBits_1; //
UART_InitStruct.UART_TxMode = UART_DataMode_8; // 8
UART_InitStruct.UART_TxPolar = UART_Polar_Normal; //usart极性
UART_InitStruct.UART_StopBits = UART_StopBits_1; //
UART_InitStruct.UART_TxMode = UART_DataMode_8; // 8
UART_InitStruct.UART_TxPolar = UART_Polar_Normal; //usart极性
UART_Init(UART0, &UART_InitStruct); UART_Init(UART0, &UART_InitStruct);
UART_ITConfig(UART0, UART_IT_RB, Enable); /* UART0接收中断使能 */ UART_ITConfig(UART0, UART_IT_RB, Enable); /* UART0接收中断使能 */
/* UART0发送缓冲区空中断模式: 全空中断 */ /* UART0发送缓冲区空中断模式: 全空中断 */
UART_TBIMConfig(UART0, UART_TBIM_Byte); UART_TBIMConfig(UART0, UART_TBIM_Byte);
NVIC_Init(NVIC_UART0_IRQn, NVIC_Priority_1, Enable); //使0
UART_ClearITPendingBit(UART0, UART_FLAG_TB);
UART_ClearITPendingBit(UART0, UART_FLAG_RB);
UART_ClearITPendingBit(UART0, UART_FLAG_FE);
NVIC_Init(NVIC_UART0_IRQn, NVIC_Priority_1, Enable); //使0
UART0_TxEnable(); UART0_TxEnable();
UART0_RxEnable(); UART0_RxEnable();
} }
void fun(void) {}
void UART0_IRQHandler(void) { void UART0_IRQHandler(void) {
/** /**
* @brief * @brief
* *
*/ */
// int i;
// for (i = 0; i < 100; i++) {
// }
// fun();
// i++;
// return;
uint8_t uart0_data; uint8_t uart0_data;
uart0_data = UART_RecByte(UART0); uart0_data = UART_RecByte(UART0);
UART_ClearITPendingBit(UART0, UART_FLAG_TB);
UART_ClearITPendingBit(UART0, UART_FLAG_RB);
UART_ClearITPendingBit(UART0, UART_FLAG_FE);
// UART0->IF.Word = (uint32_t)0xffffffff;
// UART_ClearITPendingBit(UART0, UART_FLAG_TB);
// UART_ClearITPendingBit(UART0, UART_FLAG_TC);
// UART_ClearITPendingBit(UART0, UART_FLAG_TBWE);
// UART_ClearITPendingBit(UART0, UART_FLAG_TBWO);
// UART_ClearITPendingBit(UART0, UART_FLAG_RB);
// UART_ClearITPendingBit(UART0, UART_FLAG_ID);
// UART_ClearITPendingBit(UART0, UART_FLAG_RO);
// UART_ClearITPendingBit(UART0, UART_FLAG_FE);
// UART_ClearITPendingBit(UART0, UART_FLAG_PE);
// UART_ClearITPendingBit(UART0, UART_FLAG_BDE);
// UART_ClearITPendingBit(UART0, UART_FLAG_RBRE);
// UART_ClearITPendingBit(UART0, UART_FLAG_RBRO);
// if (UART_GetFlagStatus(UART0, UART_FLAG_TB) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_TC) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_TBWE) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_TBWO) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_RB) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_ID) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_RO) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_FE) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_PE) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_BDE) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_RBRE) == SET) {
// fun();
// }
// if (UART_GetFlagStatus(UART0, UART_FLAG_RBRO) == SET) {
// fun();
// }
// UART_SendByte(UART0, uart0_data);
} }
void Uart0SendBuff(uint8_t *buff) { void Uart0SendBuff(uint8_t *buff) {
while (*buff != '\0') { while (*buff != '\0') {
UART_SendByte(UART0, *buff);
// UART_SendByte(UART0, *buff);
while (UART_GetFlagStatus(UART0, UART_FLAG_TC) == RESET) while (UART_GetFlagStatus(UART0, UART_FLAG_TC) == RESET)
; ;
UART_ClearITPendingBit(UART0, UART_FLAG_TC); UART_ClearITPendingBit(UART0, UART_FLAG_TC);

2
Library/Source/lib_printf.c

@ -21,7 +21,7 @@
/*使用printf()函数需要调用微库:Use MicroLIB*/ /*使用printf()函数需要调用微库:Use MicroLIB*/
int fputc(int ch, FILE *f) int fputc(int ch, FILE *f)
{ {
//return ch;
return ch;
uint32_t count = 0; uint32_t count = 0;
FlagStatus status = RESET; FlagStatus status = RESET;

1
Library/Source/lib_uart.c

@ -233,6 +233,7 @@ FlagStatus UART_GetStatus(UART_TypeDef *UARTx, UART_TYPE_STA UART_Flag)
SET/RESET SET/RESET
**************************************/ **************************************/
FlagStatus UART_GetFlagStatus(UART_TypeDef *UARTx, UART_TYPE_FLAG UART_Flag) FlagStatus UART_GetFlagStatus(UART_TypeDef *UARTx, UART_TYPE_FLAG UART_Flag)
{ {
FlagStatus bitstatus = RESET; FlagStatus bitstatus = RESET;

51
README.md

@ -46,21 +46,54 @@ v1.0:[软件需求.pdf](./doc/软件需求.pdf)
v2.0:[项目需求.docx](./doc/项目需求.docx) v2.0:[项目需求.docx](./doc/项目需求.docx)
v3.0:[项目需求V3.0.docx](./doc/项目需求V3.0.docx)
```
现在软件是按照V3.0的需求编程的
```
``` ```
现在程序使用的是v2.0的项目需求
暂定需求还没有编程:
灯的闪烁:
现在的话:
三档高红,中绿,低蓝对于用户来说不是很明显,而且市面上也没有这样表示的方式,最好采用三个led来表示三个档位
对与错误信息提示:
现在系统中只有led显示来与用户进行交互所以怎么利用好灯光的闪烁很关键,一个灯闪烁,两个灯闪烁,三个灯闪烁,代表不同的错误提示
定时按键:
按下之后如果当前处于间歇工作模式,则取消间歇工作模式。
==========================================================
如何完成:
当定时按键按下,
1. 设置全局变量 interval_work_flag_setting = false;
2. 调用一下update_work_state更新下工作状态即可。
----------------------------------------------------------------------------
挡位按键:
低挡位频率10k,高电平持续时间8us,蓝色
高挡位频率25k,高电平持续时间8us,红色
==========================================================
如何完成:
需要对以下几个地方代码进行修改
1. 挡位的枚举定义由3个变成2个
2. update_ozone_work_level 方法进行修改,
1.改成两个挡位
2.修改颜色和工作频率
3.修改高电平持续时间为8us
添加一个方法get_duty_by_freq_and_valid_time(uint32_t freq, uint32_t us);
duty = get_duty_by_freq_and_valid_time(25*1000, 8);
3. 按键1事件处理的地方代码进行修改,去掉中档位。
----------------------------------------------------------------------------
间歇工作模式按键:
按键按下之后,如果设备处于定时关键模式,则取消设备定时关机==========================================================
如何完成:
间歇工作按键事件处理中加入以下代码
g_auto_shutdown_countdown_s = 0;
g_auto_shutdown_flag = false;
light_module_set_autoshutdown_indicator_light(false);
``` ```
## 使用说明书 ## 使用说明书
[臭氧发生器使用说明](./doc/臭氧发生器使用说明.docx) [臭氧发生器使用说明](./doc/臭氧发生器使用说明.docx)
```
PS:现在是V2.0的臭氧发生器使用说明
```
## 硬件验证 ## 硬件验证
``` ```
@ -78,3 +111,5 @@ rgb蓝色灯光偏暗
[问题总结](http://192.168.1.3:3000/weizhuangzhuang/ES8P5066_Doc/src/branch/master/doc/%E9%97%AE%E9%A2%98%E7%A7%AF%E7%B4%AF.md) [问题总结](http://192.168.1.3:3000/weizhuangzhuang/ES8P5066_Doc/src/branch/master/doc/%E9%97%AE%E9%A2%98%E7%A7%AF%E7%B4%AF.md)
[软件出错记录.md](./doc/软件出错记录.md)

BIN
doc/markdown.assets/软件出错记录.assets/image-20220303182554789.png

After

Width: 887  |  Height: 1920  |  Size: 811 KiB

BIN
doc/markdown.assets/软件出错记录.assets/image-20220303183906328.png

After

Width: 722  |  Height: 688  |  Size: 62 KiB

27
doc/软件出错记录.md

@ -0,0 +1,27 @@
# README
```html
进中断:
发送缓冲器空中断
接收缓冲器满中断
接收帧错误中断
这三个中断一直为真
```
## BUG现象
![image-20220303182554789](markdown.assets/%E8%BD%AF%E4%BB%B6%E5%87%BA%E9%94%99%E8%AE%B0%E5%BD%95.assets/image-20220303182554789.png)
```
当着这几根线连接开发板时,按键使用正常
当着这几根线不连接开发板时,按键按下后,会有1s作用的延时
```
## 如何解决
![image-20220303183906328](markdown.assets/%E8%BD%AF%E4%BB%B6%E5%87%BA%E9%94%99%E8%AE%B0%E5%BD%95.assets/image-20220303183906328.png)

BIN
doc/项目需求V3.0.docx

1484
project_ozone/Listings/project_o.map
File diff suppressed because it is too large
View File

173
project_ozone/project_o.uvgui.admin
File diff suppressed because it is too large
View File

68
project_ozone/project_o.uvopt

@ -148,7 +148,73 @@
<Name>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC1000 -FN1 -FF0ES8P5066 -FS00000000 -FL010000)</Name> <Name>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC1000 -FN1 -FF0ES8P5066 -FS00000000 -FL010000)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>63</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>4978</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\APP\uart0.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\project_o\../APP/uart0.c\63</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>67</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\APP\uart0.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>68</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\APP\uart0.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>uart0_data</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>((UART_TypeDef *) ((0x40000000UL) + 0x06000) )-&gt;IF.Word</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>((UART_TypeDef *) ((0x40000000UL) + 0x06000) )</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
</Tracepoint> </Tracepoint>

2
project_ozone/project_o.uvproj

@ -351,7 +351,7 @@
</ArmAdsMisc> </ArmAdsMisc>
<Cads> <Cads>
<interw>1</interw> <interw>1</interw>
<Optim>0</Optim>
<Optim>1</Optim>
<oTime>0</oTime> <oTime>0</oTime>
<SplitLS>0</SplitLS> <SplitLS>0</SplitLS>
<OneElfS>1</OneElfS> <OneElfS>1</OneElfS>

Loading…
Cancel
Save