//少說話。多做事,下面是我驗證過沒有問題的串列埠傳送接受資料
//使用mcu stm8s105c6 uart2
//初始化時呼叫:
gpio_deinit(gpiod);
/* configure pd5/6 */
gpio_init(gpiod, gpio_pin_5, gpio_mode_in_pu_no_it);//傳送資料io
gpio_init(gpiod, gpio_pin_6, gpio_mode_in_fl_no_it);//接受資料io
uart2_deinit();
uart2_init(2400,uart2_wordlength_8d,uart2_stopbits_1,uart2_parity_no,\
uart2_syncmode_clock_disable,\
uart2_mode_tx_enable|uart2_mode_rx_enable); //波特率 2400 8位資料
//1個停止位 沒有奇偶校驗 關閉sck 同意串列埠接受和傳送
uart2_cmd(enable);//啟用串列埠
uart2_itconfig(uart2_it_rxne_or,enable);//同意接受中斷
//操作串列埠(傳送接受資料)時呼叫:
if(uart2_getflagstatus(uart2_flag_tc))
uart2_clearitpendingbit(uart2_flag_rxne);//清中斷標誌位
uart2recdata = uart2_receivedata8();//接受中斷資料//後面兩句須要發在
串列埠接受中斷中
void uart2_deinit(void)
void uart2_init(u32 baudrate, uart2_wordlength_typedef wordlength,
uart2_stopbits_typedef stopbits, uart2_parity_typedef parity,
uart2_syncmode_typedef syncmode, uart2_mode_typedef mode)
else
if ((u8)mode & (u8)uart2_mode_rx_enable)
else
/**< set the clock enable bit, lock polarity, lock phase and last bit
clock pulse bits according to uart2_mode value */
if ((u8)syncmode&(u8)uart2_syncmode_clock_disable)
else
}void uart2_cmd(functionalstate newstate)
else
}void uart2_itconfig(uart2_it_typedef uart2_it, functionalstate newstate)
else if (uartreg == 0x02)
else if (uartreg == 0x03)
else
}else
else if (uartreg == 0x02)
else if (uartreg == 0x03)
else
}}u8 uart2_receivedata8(void)
void uart2_senddata8(u8 data)
flagstatus uart2_getflagstatus(uart2_flag_typedef uart2_flag)
else
}else if (uart2_flag == uart2_flag_sbk)
else
}else if ((uart2_flag == uart2_flag_lhdf) || (uart2_flag ==
uart2_flag_lsf))
else
}else
else
}/* return the uart2_flag status*/
return status;
}void uart2_clearflag(uart2_flag_typedef uart2_flag)
/*< clear the lin break detection flag */
else if (uart2_flag == uart2_flag_lbdf)
/*< clear the lin header detection flag */
else if (uart2_flag == uart2_flag_lhdf)
/*< clear the lin synch field flag */
else
}
STM8s 串列埠接收不定長資料
usart rtx typedef usart1 rtx void uart1 initial void interrupt handler tim4 upd ovf irqhandler,23 gpio writereverse gpioc,gpio pin 4 tim4 clearitpendi...
STM8S時鐘配置
1 stm8時鐘說明 stm8上電復位後預設使用內部的高速時鐘,並分頻成為2m用於系統執行。如果我們想要使用外部時鐘,需要進行時鐘切換,切換過程中還需要使用stvp進行晶元選項字的更改。2 stm8s時鐘配置 庫函式版 1 配置內部高速振盪器 hsi 的分頻器 1分頻 clk hsiprescale...
stm8s串列埠奇偶校驗學習筆記
特別注意 stm8的資料長度定義。以前用過stm32的串列埠,不過用的時候一般都是呼叫庫函式,設定波特率,8位資料位,無校驗,1位停止位。傳輸過程中也沒有遇到過太多的問題,最近用stm8s,需要用到奇偶校驗 至於什麼是奇偶校驗,網上資料很多 用了之後發現還是有些地方多需要注意的,下面把遇到的問題記錄...