usart.c檔案**。
#include "usart.h"
#include "gpio.h"
uart_handletypedef huart1;
/* usart1 init function */
void mx_usart1_uart_init(void)
__hal_uart_enable_it(&huart1, uart_it_rxne);
__hal_uart_enable_it(&huart1, uart_it_idle);
}void hal_uart_mspinit(uart_handletypedef* uarthandle)
}void hal_uart_mspdeinit(uart_handletypedef* uarthandle)}/*
** rewrite fputc function and make printf function work
**/int fputc(int ch, file* file)
/*** rewrite fgetc function and make scanf function work
**/int fgetc(file* file)
usart.h**:
#ifndef __usart_h
#define __usart_h
#ifdef __cplusplus
extern
"c" receiveuartdata_t;
void mx_usart1_uart_init(void);
#ifdef __cplusplus
}#endif
#endif /*__ usart_h */
中斷函式**:
uint8_t tempdata[260] = ;
uint16_t tempsize = 0;
void usart1_irqhandler(void)
}/* handle idle interruption */
if((__hal_uart_get_it(&huart1, uart_it_idle) != reset))
}}
main.c**:
#include "stm32f0xx_hal.h"
#include "usart.h"
#include "gpio.h"
#include
#include
#include
receiveuartdata_t uartdata=
, 0, false};
void
charprint(const
uint8_t* data, size_t
size);
intmain(void)
}}/*
** brief: print
char
data
**/void
charprint(const
uint8_t* data, size_t
size)
}}
可以注意到在中斷處理的時候,我採用了雙緩衝機制,保證了超長資料丟失問題,自己測試了可以正常使用。 STM32F030C8T6低功耗筆記
2018年5月8日 這個晶元的低功耗搞了好久了,剛開始是7ma降不下去,然後是降到了1ma,到現在的200ua,還是有地方沒有弄好,目標是降到50ua左右,目前遇到了問題,進入stop模式的時候降到了110ua,然後會慢慢回公升80ua。這裡先寫一下之前的一些總結。首先進入的是stop模式,因為這個...
STM32F030CCT6串列埠3使用總結
前提 實際應用中,晶元型號為stm32f030cct6,串列埠1用於模組通訊,串列埠2用於儀表通訊,串列埠3用於除錯,log輸出 void usart1 config u32 baud 方式類似,此處省略 void usart3 config u32 baud 開啟引腳復用功能時,引腳為 gpio ...
stm32f030c8t6 MCU進入低功耗模式
1.sleep 模式 2.stop 模式,在這個模式下,io管腳保持run狀態下的電平,ram保持不變,所以在進入這個狀態之前,先先將io口配置好,否則可能會有漏電流 3,standby模式下,ram不保持,io管腳進入高阻態,啟用就於系統reset rcc apb1periphclockcmd r...