上一篇帖子地址:
https://www.hellocq.net/forum/read.php?tid=377709在上一篇帖子中,作者公開了第2份源代碼(V0.02版本)。
這一篇帖子講解BFK6的V0.02版本源代碼中的幾個明顯BUG以及改動方法。
改動之後的源代碼將升級為V0.03版本。
———————————————BUG8:菜單關於啞音顯示的問題———————————————
接收和發射模擬啞音菜單中,00-50選項下,都顯示“關閉”,這是個BUG。
接收和發射數字啞音菜單中,211選項下,顯示空白了,這是個BUG。
在 DisplayMenu.c中找到DisplayMenu函數,
注釋掉
//selecteId = CheckCtcssInList(g_menuInfo.inputVal);
打開
selecteId = g_menuInfo.selectedItem;
即可。
這裏有個誤區,就是const u16 CTCS_TAB[51]數組中第0個數值630,其實沒有這個63.0啞音值,這個數值對應啞音關閉。
———————————————BUG9:按鍵音有破音———————————————
上一版本的固件,在菜單中,按上下鍵,即可聽到喇叭破音。
這個問題在於軟件延時函數被編譯器優化掉了,
void DelayUs(u16 n)// 1US
{
volatile u16 t = n * 8;
while(t--)
{
}
}
void DelayMs(u16 n)
{
volatile u16 i=0;
for (i=0;i<n;i++)
{
DelayUs( 1000 );
}
}
這裏需要找到這兩個函數,將内部計數器改成volatile類型,即可避免軟件延時被編譯器優化。
———————————————BUG10:收音機頻率顯示不美觀———————————————
在DisplayFm.c中,找打FmDisplayFreq函數,改下
len = sprintf(disBuf,"%d.%d M",fmInfo.freq/10,fmInfo.freq%10);
以88.8爲例,屏幕顯示 “88.8 M”,相比於以前美觀了很多。
其實這個地方還有一個BUG,在收音機模式下,按上下鍵,喇叭仍然能聽到破音,這個以後再修改。
———————————————BUG11:優化了程序架構———————————————
刪除掉了程序中沒有用的文件,只保留用到的。
makefile其實也用不到。
整個工程文件按照比較正點原子的風格來排列。
———————————————BUG12-N:其它尚未發現的BUG———————————————
這個以後再慢慢修改。
更改完上述BUG的源程序(V0.03版本)下載:
固件(V0.03版本)在源程序的out文件夾下bfk6-202503151301.bin。
謝謝大家。
這裏是BD7OTO,2025.03.08在澳門。
[ 此帖被bd7oto在2025-03-15 13:14重新编辑 ]