国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
【新提醒】【stm8s003系列例程】2 基本串口收發(fā)(中斷接收方式)
 本帖最后由 辛昕 于 2014-1-4 18:40 編輯

對(duì)于串口而言,最基本的就是 收發(fā)。
因?yàn)楸纠滔盗屑拔覀€(gè)人的風(fēng)格,我總是只讓例程的功能——同時(shí)也就純粹到 只展示這個(gè)功能的最小配置和最少代碼。

而對(duì)我而言,串口 收發(fā)(1字節(jié)——因此也就不涉及另外 對(duì) 收發(fā)的緩沖處理 等 實(shí)質(zhì)上 和 串口基本功能無(wú)關(guān)的 代碼)。
當(dāng)然大多數(shù)時(shí)候,我接收都是中斷方式,而發(fā)送則無(wú)此必要——但是,我知道,在對(duì)速度有要求或者需要并行處理的場(chǎng)所,還需要 發(fā)送中斷,但這個(gè)比較少用,因此不考慮。

下面是代碼。
在貼以前,我講一些對(duì)相關(guān)庫(kù),代碼的改動(dòng)。

首先,stm8s這個(gè)庫(kù),它的stm8s_uart1.c里,在計(jì)算波特率時(shí),它需要獲取當(dāng)前時(shí)鐘頻率
它采用的是 CLK_GetClockFreq();
這個(gè)函數(shù)定義在stm8s_clk.h里
然而,在這里,它并沒(méi)有包含這個(gè)頭文件——我知道,它是想模仿C標(biāo)準(zhǔn)庫(kù),保證內(nèi)部的十幾個(gè)庫(kù)之間不存在互相包含關(guān)系。
很可惜它犯了錯(cuò)誤。

因?yàn)槲易鲞@個(gè)串口例程時(shí)始終錯(cuò)誤,我走了不少?gòu)澛?,最后想起?lái)查對(duì)相關(guān)寄存器,發(fā)現(xiàn)這個(gè)波特率BRR1 BRR2從來(lái)就沒(méi)正常過(guò)。
而對(duì)比我此前的105例程卻是可以的。(因?yàn)槲掖饲耙哺膭?dòng)過(guò),而我卻忘了,也沒(méi)有記錄下來(lái)。)

也許在某些編譯器上可以允許這種錯(cuò)誤,但是調(diào)用和返回不會(huì)出錯(cuò),但是這種對(duì)具體環(huán)境的依賴絕對(duì)是 除了找死還是找死。

其次,采用 CLK_GetClockFreq() 這個(gè)函數(shù)獲取系統(tǒng)時(shí)鐘,也有不妥當(dāng)之處。
因?yàn)檫@個(gè)函數(shù)依賴一個(gè)外部宏,那就是 HSE_VALUE;
因?yàn)槭聦?shí)上,STM8S內(nèi)部沒(méi)有真正可以用于采樣獲取時(shí)鐘頻率的硬件。
它只不過(guò)是通過(guò) 寄存器(對(duì)HSI LSI),以及這個(gè) HSE_VALUE宏來(lái)確定頻率。

我們都知道,如果我希望把這個(gè)庫(kù)單獨(dú)封裝,那么,對(duì)外部晶振頻率這種隨時(shí)會(huì)變化的環(huán)境,采用宏寫入庫(kù),那將是一個(gè)大麻煩。

因此這個(gè)地方是造成這個(gè) 庫(kù)無(wú)法單獨(dú)封裝 的又一個(gè)障礙。

我暫時(shí)沒(méi)想到太好的辦法。
但顯然,這個(gè)地方是一個(gè)隱患。

過(guò)后也許會(huì)考慮比較單純的,采取單獨(dú)增加填寫 BRR1 BRR2寄存器的函數(shù),或者想辦法把外部晶振頻率傳遞入庫(kù),讓它可以獲得真正的 實(shí)際頻率。

注:以上兩處,涉及 庫(kù) 以及 CLOCK部分,而這兩部分我先前已經(jīng)發(fā)過(guò)貼,我會(huì)把這些內(nèi)容同步更新到那兩個(gè)貼里。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
stm32 USART 串口通信[操作寄存器+庫(kù)函數(shù)]-Changing's Blog
ARM嵌入式編程與實(shí)戰(zhàn)應(yīng)用(STM32F1系列)第5章 USART串口通信
STM32 ~ USART接收不定長(zhǎng)數(shù)據(jù)
STM8L的DMA詳解 含例程
STM8學(xué)習(xí)筆記
IAR+STM8 UART串口發(fā)送與中斷接收
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服