1樓:匿名使用者
估計是你的串列埠時鐘沒有初始化,所以編譯正確也沒有效果
看看我的初始化
/* enable usart1 and gpioa clock */
rcc_apb2periphclockcmd(
rcc_apb2periph_usart1
| rcc_apb2periph_gpioa
| rcc_apb2periph_afio,
enable);
/* enable usart2 and gpioa clock */
// 第2個usart為pa2 pa3
rcc_apb1periphclockcmd(rcc_apb1periph_usart2, enable);
// >>>>>是否也應該為usart3也設定呢?
rcc_apb1periphclockcmd(rcc_apb1periph_usart3, enable);
rcc_apb2periphclockcmd(
rcc_apb2periph_gpiob
| rcc_apb2periph_afio, enable);
// 初始化uart4埠時鐘、複用埠
rcc_apb1periphclockcmd(rcc_apb1periph_uart4,enable);
rcc_apb2periphclockcmd(
rcc_apb2periph_gpioc
| rcc_apb2periph_afio, enable);
對比你的usart1埠的
rcc_apb2periphclockcmd(
rcc_apb2periph_usart1|
rcc_apb2periph_gpioa,enable);
阿莫上有明確的一個解釋:
1.afio是引腳複用時鐘,只要用到引腳的第二功能,都需要開啟,你說不開啟這個時鐘也能用,我有些不太相信,可能是你程式裡別的地方有開啟
2.用usart1的時候pa9,pa10已接到串列埠上了,你又問能不能正常使用,我有些不明白你到底是什麼意思
2樓:匿名使用者
恩!你是什麼編譯環境!??
如果是keil4的話有一個地方需要改動一下!
3樓:肥肥的爆米花
lz程式在**?我幫你看看。ls那個發程式的是不是你?如果是你的話,你的程式錯在沒有中斷優先順序配置,那裡面有箇中斷使能,使能了你才能進中斷。
stm32哪個串列埠除錯工具好用
4樓:匿名使用者
串列埠除錯工具不區分那個晶片的,推薦你使用大傻,如果你需要抓包檢視串列埠資料的話,也可以使用accessport。
5樓:匿名使用者
既然是初學者,這種問題最好自己解決,看stm32資料手冊,上網找例程自己改,才能學到東西。main函式裡必須要有while(1)或者是你說的for(;;),因為如果沒有的話,程式執行完後會跑飛的,出現各種莫名其妙的錯誤。你main函式裡除了初始化配置在while(1)前之外,所有的非中斷程式都要在死迴圈裡做。
main如果沒有while(1),程式執行完後就不知道跑到**了,不能這麼幹
求一段 電腦用串列埠除錯工具向stm32傳送資料控制led燈 的stm32 程式
6樓:匿名使用者
既然是初學者,這種問題最好自己解決,看stm32資料手冊,上網找例程自己改,才能學到東西。
main函式裡必須要有while(1)或者是你說的for(;;),因為如果沒有的話,程式執行完後會跑飛的,出現各種莫名其妙的錯誤。
你main函式裡除了初始化配置在while(1)前之外,所有的非中斷程式都要在死迴圈裡做。
main如果沒有while(1),程式執行完後就不知道跑到**了,不能這麼幹
stm32 怎麼用串列埠除錯工具給微控制器傳送資料 然後微控制器在將接收到的資料傳送給pc
7樓:匿名使用者
配置好接收中斷,然後再中斷裡面清除中斷標誌位,在傳送接收到的資料
8樓:匿名使用者
能將問題說的再詳細一點嗎?stm32可以直接和pc通訊啊!
stm32比51微控制器有什麼優點
優點如下 1 stm32屬於arm核心的一個版本,比傳統的51微控制器高階多了,有很多資源是51不具備的,如usb控制器。而且已經廢除了機器週期什麼的,速度不是51能比的。2 stm32微控制器程式都是模組化的,介面相對簡單些,因為它自身帶好多功能,工作速度也快。而51的自身功能少,需要外圍元件多,...
stm32和51微控制器可以公用keil進行編嗎
可以的,破解時兩個都 要破解,用 keil4也可以編譯51,啟動時找不到路徑可以自行新增,在一個tools.ini檔案裡有如下資訊 可見有兩個path uv2 organization 平煤股份十一礦 name xia ming xia version v2.0 email 11kxmx 163.c...
51微控制器串列埠問題 傳送位元組 為什麼串列埠除錯軟體連續接收 下附程式
兩個錯誤復。while ti ti 0 這是一個。制while ti 後面少一個分bai號!變成了,du原本正確的程式是想讓zhiti 1的時候,把daoti清零,但是你現在變成了 當ti為0的時候執行ti 0,而當ti變成1的時候卻反而不執行ti 0了,因此每次傳送完成一個字元以後,ti的值沒有清...