|
int main(void)
{
uint16_t usValue;
/*
由于ST固件庫的啟動文件已經執行了CPU系統時鐘的初始化,所以不必再次重復配置系統時鐘。
啟動文件配置了CPU主時鐘頻率、內部Flash訪問速度和可選的外部SRAM FSMC初始化。
系統時鐘缺省配置為72MHz,如果需要更改,可以修改:
\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
中配置系統時鐘的宏。
*/
InitBoard(); /* 為了是main函數看起來更簡潔些,我們將硬件初始化的代碼封裝到這個函數 */
PrintfLogo(); /* 打印例程Logo到串口1 */
printf("請調節開發板上的精密可調電阻,觀察ADC采樣值的變化\r\n");
ADC_Configuration(); /* 配置PC4 為ADC1_IN14 */
bsp_StartTimer(1, 300); /* 定時器0周期 200毫秒 */
/* 進入主程序循環體 */
while (1)
{
CPU_IDLE(); /* 這個宏在bsp_timer.h 中定義,目前定義為空。用戶可以修改這個宏實現CPU休眠和喂狗 */
if (bsp_CheckTimer(1)) /* 定時到 */
{
bsp_StartTimer(1, 300); /* 啟動下個定時周期 */
usValue = GetADC();
/* 注意: 末尾只有 \r回車, 沒有\n換行,可以使PC超級終端界面穩定在1行顯示 */
{
/* 超級終端界面上會顯示一個不斷旋轉的字符
增加這個功能,是為了避免程序死機的假象,因為ADC采樣值很穩定
*/
static uint8_t pos = 0;
if (pos == 0)
printf("|");
else if (pos == 1)
printf("/");
else if (pos == 2)
printf("-");
else if (pos == 3)
printf("\\"); /* 注意:這個特殊字符需要轉義 */
if (++pos >= 4)
{
pos = 0;
}
printf(" PC4口線ADC采樣值 = %5d , 電壓 = %4dmV\r",
usValue, ((uint32_t)usValue * 3300) / 4095);
}
}
/* 這個地方可以插入 GetKey(), 擴充對按鍵的響應代碼 */
}
}
|
-
-
ADC采樣和濾波例程.7z
2020-8-14 14:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
210.84 KB, 下載次數: 43, 下載積分: 黑幣 -5
stm32 內部ADC采樣和濾波例程
|